Boggle Solver
Fast trie-based DFS solver with dictionary-only matching. No AI/LLM guessing — words are validated exclusively against bundled dictionaries (359K English + 1.35M German).
Workflow (from photo)
- •Read the 4x4 grid from the photo (left-to-right, top-to-bottom)
- •Show the grid to the user and ask for confirmation before solving
- •Only after user confirms → run the solver
- •Always run English and German SEPARATELY — present as two labeled sections (🇬🇧 / 🇩🇪)
Solve a board
bash
# English python3 skills/boggle/scripts/solve.py ELMU ZBTS ETVO CKNA --lang en # German python3 skills/boggle/scripts/solve.py ELMU ZBTS ETVO CKNA --lang de
Each row is one argument (4 letters). Or use --letters:
bash
python3 skills/boggle/scripts/solve.py --letters ELMUZBTSETVOCKNA --lang en
Options
| Flag | Description |
|---|---|
--lang en/de | Language (default: en; always run EN and DE separately) |
--min N | Minimum word length (default: 3) |
--json | JSON output with scores |
--dict FILE | Custom dictionary (repeatable) |
Scoring (standard Boggle)
- •3-4 letters: 1 pt
- •5 letters: 2 pts
- •6 letters: 3 pts
- •7 letters: 5 pts
- •8+ letters: 11 pts
How it works
- •Builds a trie from dictionary files (one-time, ~11s)
- •DFS traversal from every cell, pruned by trie prefixes
- •Adjacency: 8 neighbors (horizontal, vertical, diagonal)
- •Each cell used at most once per word
- •Qu tile support: Standard Boggle "Qu" tiles are handled as a single cell (e.g.,
QUENHARI...→ "QU" occupies one position) - •All matching is dictionary-only — no generative/guessed words
Data
Dictionaries are auto-downloaded from GitHub on first run if missing.
- •
data/words_english_boggle.txt— 359K English words - •
data/words_german_boggle.txt— 1.35M German words
Performance
- •Trie build: ~11s (first run, 1.7M words)
- •Solve: <5ms per board