Tic-Tac-Toe GO!
graham_m·2026-10-28

Tic-Tac-Toe GO! started in 2016 as a small iPhone game with an iMessage extension, so friends could play a game right inside a conversation. Ten years later I rebuilt it from scratch in SwiftUI for version 2.0.
What's new in 2.0
- A computer that actually plays. Easy, Medium and Hard. On the classic 3×3 board, Hard searches every possible game and can't be beaten.
- More boards. Big (5×5, four in a row), Mega (7×7, five in a row) and Ultimate Tic-Tac-Toe, where each move decides which small board your opponent plays next.
- A daily puzzle. A new "win in N moves" position every day, the same for everyone, generated on the phone from the date and proven by a solver. No server needed.
- iMessage games on every board, including Ultimate, with themed board images and moves you can change before you send.
- Themes, stats, Game Center achievements and leaderboards, and 12 languages.
Under the hood
Swift and SwiftUI on iOS 17. The game engine is a separate Swift package shared by the app and the iMessage extension: the rules for any board size, the AI (alpha-beta search), the puzzle generator and solver, and the message format. It has its own test suite that also runs on Linux in CI, alongside UI tests that play full games in the simulator.