Play friends in real time, or take on a computer opponent at whatever difficulty suits you. Here's what's under the hood.
Moves sync instantly over a live connection, so games feel like sitting at the same table.
Every game has an AI with a difficulty picker, from a gentle first game to a real challenge.
Checkers, Hex, Breakthrough, Othello and Konane, each with its own engine.
Four of the five AIs use the same core idea: imagine every possible move, then every reply, and so on, and pick the move that works out best if the opponent also plays their best. Hex works differently. The ideas below come up throughout.
Higher levels give each AI more to work with: more thinking time, deeper search or less randomness, depending on the game.
The most advanced AI on the site. It searches deeper and deeper until its time is up, remembers positions it has already analysed, and tries the most promising moves first. Before judging a position it plays out any pending captures, so it never stops thinking halfway through an exchange.
Hex has too many possible moves for a deep look-ahead, so levels 1 to 3 read the board instead. For every empty cell they work out roughly how far each player is from linking their two edges through that cell, spreading distances in from the borders until they settle. They then play where it matters most to both players: the cell that best shortens their own path while blocking yours. This part is adapted from Lutanho's classic JavaScript Hex program.
Levels 4 and 5 use a different approach, Monte Carlo tree search. They play out tens of thousands of quick random games from the current position, steering towards the moves that win most often. The random games always save a threatened two-bridge, so they play out much more like real Hex, and the search learns which cells are worth owning from every game it plays.
A fast, deep search that knows Breakthrough's forcing rules. A pawn one step from your home row always wins next move, so the AI treats it as won, and when yours gets that far it knows it must capture at once. That settles most races in a few steps instead of a long look-ahead. It remembers positions it has already analysed, tries captures and proven moves first, and before judging a position plays out any pending captures and pushes, so it never stops mid-exchange.
A fast, deep search that judges positions the way strong players do. Grabbing discs early usually backfires in Othello, so it cares far more about corners, keeping its options open while limiting yours, and not handing you a corner by playing next to an empty one. It remembers positions it has already analysed and tries its best moves first, and once its search reaches the end of the game it plays the final moves perfectly.
In Konane you lose when you run out of moves, so the AI plays to keep its own options open while squeezing yours. It searches one move deeper at a time until the level's depth or its time runs out, and tries multi-jump captures first. The opening removals are random to keep games varied.