A table-driven engine: all 65,536 possible row transforms are precomputed at load, so a move
costs four array lookups. The solver is depth-adaptive expectimax over that representation —
watch it work in the panel beside the board.
↑↓←→ or WASD to move · R new game · Space AISwipe the board to move · tap “New game” to reset