Skip to content

michaelkaplan13/hexicon

Repository files navigation

Hexicon

CI License: MIT Live

A six-letter word guessing game — like Wordle, but harder.

Built as a fun side project using Claude Code to explore what AI-assisted development looks like end-to-end.

Play at hexicon.xyz →

Hexicon screenshot


How to Play

  • Guess a valid 6-letter word in 7 tries
  • After each guess, tiles reveal how close you were:
    • Green — correct letter, correct position
    • Yellow — correct letter, wrong position
    • Gray — letter not in the word
  • Switch between Daily mode (one word per day) and Practice mode (unlimited games)
  • Hint Mode highlights words in the word list that are still possible solutions given your guesses
  • Hard Mode requires each guess to use all confirmed letters

Tech Stack


Running Locally

npm install
npm run dev

Then open http://localhost:5173 in your browser.

npm test       # run unit tests
npm run build  # production build → dist/

Word List

The solution pool is derived from dwyl/english-words. Words are filtered through a Python pipeline that excludes past-tense verbs, plurals, proper nouns, and uncommon words.

Rebuilding

python3 scripts/build-wordlist.py

This produces five categorized files under dictionary/words/:

File Description
words_6letter_valid.json Common 6-letter words used as puzzle solutions
words_6letter_past_tense.json Regular past-tense verbs ending in -ed (valid guesses only)
words_6letter_plural.json Regular plurals and 3rd-person singular verbs ending in -s/-es (valid guesses only)
words_6letter_proper_noun.json Proper nouns — names, places, etc. (valid guesses only)
words_6letter_uncommon.json Words below the frequency threshold (valid guesses only)

Filtering logic

Words are excluded from the solution pool in order of priority:

  1. Past tense — regular -ed verbs detected by root lookup (e.g. WALKED → WALK). Words ending in -ied and adjectives like GIFTED or CURSED are kept.
  2. Plural / 3rd-person — words whose root exists in the dictionary after stripping -s, -es, or -ies.
  3. Proper nouns — words that appear in /usr/share/dict/words only in capitalized form, indicating they are names or places.
  4. Uncommon — words with a Zipf frequency below 3.0 (out of 8) as measured by the wordfreq library. Adjust via ZIPF_THRESHOLD in scripts/build-wordlist.py.

Excluded words are still accepted as valid guesses.


Contributing

Bug reports, word list suggestions, and feature requests are welcome — please open an issue.

To propose a word list change, edit the relevant _INCLUSIONS or _EXCEPTIONS sets in scripts/build-wordlist.py and open a pull request. The filtering logic and thresholds are documented above.


License

MIT © michaelkaplan13

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors