Skip to content
Ritesh FirodiyaGet in touch

Work / Tic Tac Toe / Wiki / Concepts

hard-is-unbeatable

Conceptcanonicalverified 2026-09-22

CONCEPT.HARD-IS-UNBEATABLE

Summary

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-play exists 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é