Work / Tic Tac Toe / Wiki / Concepts
hard-is-unbeatable
Conceptcanonicalverified 2026-09-22
CONCEPT.HARD-IS-UNBEATABLESummary
Hard is perfect minimax. It cannot be beaten, only drawn — and the app has to say so, in words, before the player finds out the slow way.
Why it matters
Tic-tac-toe is a solved game: perfect play from both sides is always a draw. A player who loses ten times to an unlabelled "Hard" does not conclude the AI is good. They conclude the app cheats, and they say so in a review.
The label is therefore not copy polish. It is the difference between "I was beaten by a perfect opponent" and "this thing is rigged", and those two sentences have very different star ratings attached.
Implications
settings/how-to-playexists mainly to carry this sentence. Everyone already knows the rules of tic-tac-toe; what they do not know is what the three difficulties actually do.- "You can draw, not win" is the single most useful string in the app. It must survive any copy edit.
- A draw against Hard is the best available outcome and the result sheet says so, rather than showing a neutral "Game over".
- Easy and Medium must therefore be genuinely beatable, or the ramp is a lie in the other direction.
Related
- reserved-colour — why the difficulty ramp gets its own colours
- monetisation — the interstitial must never land on the result beat
Sources
- .context/designs/mobile/settings/how-to-play.html
- .context/designs/mobile/game/win.html, lost.html, draw.html
- src/lib/ai.ts, src/lib/ai.test.ts
Every project of mine is written down like this.
Read the résumé