Position keeps the board as 14 stone counts and plays the Mangala rules on it without allocating. Tested against MancalaGame with the recorded games and random games.
1.7 KiB
1.7 KiB
Game bot: tasks
Work through the tasks in order; each ends with its tests passing and a commit. Tick a task when it is committed.
- 1. Spec: requirements, design and tasks.
- 2. Compact board:
Positionin the engine package; tests againstMancalaGamewith the recorded parity games and random games. - 3. Search and strength:
BotLevel,BotSettings,BotStrength,BotSearch,BotPolicywith unit tests;BotTournamentTest(tagcalibration) and its quick version; tune the evaluation weights and the strength table until R2.4 holds, and write the final values intodesign.md. - 4. Bot games in the backend:
new_bot_game,BackendGame.bot,playMovesplit out ofonGameMove,onTurnStarted, bot ids inGameStore,PublicIdsand the connection info;BotPlayerand its executor inBackend,BOT_SEARCH_THREADS;botin snapshots and their restore; unit tests. - 5. Saving:
botinGameRecord, migration003_bot, the repository; integration tests. - 6. Core:
channel_new_bot_game,BotLevel,BOT_LEVELS,BOT_OFFER_DELAY_MS,isBotId,getBotLevel,getPlayerDisplayNamefor bots, texts in English and Turkish; unit tests. - 7. Web app:
BotLevelPicker, the home page button, the lobby offer and?bot=, "Play again" after a bot game, bot names everywhere players are shown. - 8. Mobile app: lobby offer and
botLevel, home screen button, bot names; type check and bundle. - 9. End to end and docs: the Chrome tests from
design.md;README.md,apps/backend/README.md,AGENTS.md(the specs list, bot ids, the calibration test) andTODO.md(the out of scope items).