mancala/docs/specs/game-bot/tasks.md
Halit Aksoy f9a96fc5f5 feat(backend): add a compact board for searching moves
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.
2026-10-16 12:47:32 +03:00

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: Position in the engine package; tests against MancalaGame with the recorded parity games and random games.
  • 3. Search and strength: BotLevel, BotSettings, BotStrength, BotSearch, BotPolicy with unit tests; BotTournamentTest (tag calibration) and its quick version; tune the evaluation weights and the strength table until R2.4 holds, and write the final values into design.md.
  • 4. Bot games in the backend: new_bot_game, BackendGame.bot, playMove split out of onGameMove, onTurnStarted, bot ids in GameStore, PublicIds and the connection info; BotPlayer and its executor in Backend, BOT_SEARCH_THREADS; bot in snapshots and their restore; unit tests.
  • 5. Saving: bot in GameRecord, migration 003_bot, the repository; integration tests.
  • 6. Core: channel_new_bot_game, BotLevel, BOT_LEVELS, BOT_OFFER_DELAY_MS, isBotId, getBotLevel, getPlayerDisplayName for 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) and TODO.md (the out of scope items).