Tic Tac Toe ← how this was built
Over-engineered · six opponents
Players
Board
In a row
About the six opponents
Random
Picks any empty square uniformly at random. A losing strategy against anyone who's paying attention — the naive baseline. any board
Minimax
Searches the game tree, assuming the opponent plays perfectly. Scores wins +, losses , draws 0, and prefers faster wins. Unbeatable at 3×3. 2p
Alpha-Beta
Minimax with pruning — skips branches that can't beat a line already found. Identical play, a fraction of the positions explored. 2p
MaxN
The three-player generalisation: every node scores a vector of utilities, and each player maximises their own. No zero-sum shortcut. 3p
Paranoid
Collapses three players to "me vs. the world" — assumes the other two coordinate against it. Cheaper, and often deeper. 3p
MCTS
Monte Carlo Tree Search. Knows only the rules; learns by playing thousands of random games and trusting what wins. any board

On boards larger than 3×3, exhaustive search is intractable — so Minimax, Alpha-Beta, MaxN, and Paranoid switch to a depth-limited search with a threat heuristic (strong, but no longer provably perfect). MCTS and Random scale unchanged.

A worked example built entirely through the spectastic lifecycle.
Engines after the interlude in Over-Engineering Tic-Tac-Toe.