This project contains various word game implementations including Wordle, Semantle, and crossword puzzles. It includes tools for finding optimal opening word combinations using letter frequency analysis and integer linear programming.
After cloning the repository, install the package in editable mode:
# Install dependencies and the package
uv sync
# Or alternatively
uv pip install -e .This installs the riddle module, making it available to all scripts in the project.
| Word Length | Number of Words | Opening Words |
|---|---|---|
| 3 | 5 | but - foc - lap - mir - nes |
| 4 | 4 | buts - fiel - marc - pond |
| 4 | 5 | bang - dupe - fric - thym - vols |
| 4 | 5 | bock, gent, hard, plum, vifs |
| 5 | 3 | abces - lundi - rompt |
| 5 | 4 | clamp - hebdo - jurys - vingt |
| 6 | 2 | craint - moules |
| 6 | 3 | dragon - mythes - public |
| 6 | 4 | bijoux - champs - devint - frugal |
| 7 | 2 | inculpe - motards |
| 7 | 3 | chomage - devants - publier |
| 7 | 4 | abdomen - facheux - piquant - verglas |
| 8 | 2 | chanteur - diplomes |
| 8 | 3 | bucheron - domptage - festival |
| 9 | 2 | degauchir - longtemps |
| Word Length | Number of Words | Opening Words |
|---|---|---|
| 3 | 4 | bet - dig - oar - pun |
| 3 | 5 | bed - out - ran - spy - wig |
| 4 | 3 | dare - punt - soil |
| 4 | 4 | ache - born - dump - silt |
| 4 | 5 | bums, fern, gold, pack, with |
| 5 | 3 | duchy - slain - trope |
| 5 | 4 | blank - crest - dough - wimpy |
| 6 | 3 | cymbal - gopher - nudist |
| 7 | 2 | closeup - trading |
| 8 | 2 | chapters - moulding |
| 9 | 2 | combating - upholders |
# Wordle game
uv run src/wordle/main_wordle_game.py
# Semantle game
uv run src/semantle/main_semantle_game.py
# Crossword game
uv run src/cross_word/main_cross_words_game.py
# Clustering analysis
uv run src/riddle/main_cluster.py# French, 5-letter words, 2 words
uv run src/wordle/main_wordle_opening.py french 5 2
# English, 5-letter words, 3 words
uv run src/wordle/main_wordle_opening.py english 5 3uv run pytest tests