Mahjong
Phase 1: Board model, tile set logic and rule groundwork
Implement full Mahjong tile model, grid layout system and basic rule engine.
- Build tile classes + identifiers
- Generate full shuffled set
- Encode adjacency/removal rules
Functional Output: A fully generated logical board with rule-validated removable tiles.
Phase 2: GUI foundation and interactive board rendering
Create the visual interface and map the tile model to clickable UI elements.
- Draw layered tiles with depth
- Highlight valid moves
- Handle selection states
Functional Output: A functional GUI showing the board with interactive tile selection.
Phase 3: Tile removal mechanics and game progression
Integrate logic + GUI to support full turn cycles and remove matched tiles.
- Detect legal matching pairs
- Animate removals
- Update board state
Functional Output: Tiles can be matched and removed correctly, updating the GUI and logic.
Phase 4: Game states, scoring, timers and win/loss conditions
Implement scoring, hints, timers and end-state detection for complete gameplay flow.
- Track score combos
- Provide hint logic
- Detect no-move/empty board
Functional Output: Game rounds progress with scoring, hints and consistent win/loss evaluation.
Phase 5: Save/load system, settings and persistent profiles
Add persistence for progress, user preferences and resume functionality.
- Store board snapshots
- Save settings/profile
- Load saved sessions
Functional Output: Game state can be saved, restored and configured across sessions.
Phase 6: Advanced features, solver module and polish
Implement auto-solver, undo/redo, animations and full stability testing.
- Build solver to find optimal paths
- Add undo stack
- Refine animations/UI
Functional Output: A polished, stable Mahjong app with solver, undo/redo and smooth interactions.