A single-player reversi clone built with Flutter, which compiles for Android, iOS, web, macOS, Windows, and Linux.
The user plays as black, and the CPU will make moves as white in response. The move search only goes 4-5 plies ahead, so it's not that sophisticated but puts up a reasonable fight.
This was written as an exercise to help me ramp up on Flutter, back when I joined the team in the spring of 2018, and it's intended to be an open source example. The tech used includes:
- Streams!
- Dart Isolates
- Implicit animations like AnimatedOpacity and AnimatedContainer.
If you spot a bug, feel free to file an issue report.
This codebase is organized as a monorepo workspace containing two packages:
packages/flutterflip_shared: A pure Dart package containing the core board state representation, score evaluation heuristics, and game models (GameBoard,GameModel,GameBoardScorer).packages/flutterflip: The Flutter client application containing all widget trees, visual theme structures, platform directories, assets, and isolate-based engine move finder calculations (MoveFinder).
