ai-code-battle/starters/python/README.md
jedarden fe04cd275d fix(starter-kits): complete incomplete refactoring and fix build errors
The starter kits had uncommitted changes from a refactoring that broke
the Rust and TypeScript builds. This commit completes the refactoring
and fixes the build errors.

**Rust starter fixes:**
- Add `http::header` import to fix `header::HeaderName` reference
- Replace `hmac::compare_digest` (non-existent) with constant-time comparison

**TypeScript starter fixes:**
- Rename `GameState` -> `VisibleState` and `MoveResponse` -> `TurnResponse`
- Fix `strategy.ts` to use `bot.position.row` instead of `bot.row`
- Fix Move type to use `position: {row, col}` structure

**Go starter fixes:**
- Remove unused `strings` import

All 8 starter kits now build successfully with their respective toolchains.

Closes: bf-2rwz

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 22:40:37 -04:00

40 lines
1.4 KiB
Markdown

# AI Code Battle - Python Starter Bot
A minimal Python bot for AI Code Battle. This starter kit includes:
- HTTP server with HMAC authentication
- Game state type definitions
- Stub strategy function (you fill this in!)
- Dockerfile for containerization
## Quick Start
1. Copy this bot to your own repository
2. Edit `strategy.py` to implement your bot's logic
3. Build and run locally: `docker build -t my-bot . && docker run -p 8080:8080 -e SHARED_SECRET=test my-bot`
4. Test: `curl http://localhost:8080/health` should return "OK"
5. Register your bot at https://ai-code-battle.pages.dev/#/register
## Strategy Interface
Edit `strategy.py` to implement your bot. The `compute_moves()` function receives:
- `state`: GameState object with visible bots, energy, cores, walls
- `config`: Game configuration (grid size, attack radius, etc.)
Return a list of move objects:
```python
{
"position": {"row": 5, "col": 10}, # Current position of bot to move
"direction": "N" # One of: "N", "E", "S", "W", or "" for no move
}
```
## Game Protocol
- Your bot receives POST `/turn` requests each turn with fog-filtered game state
- Request is signed with HMAC-SHA256 (verify for security)
- Respond with moves within 1 second timeout
- See `protocol.md` for full specification
## Deployment
Push to your container registry and register the bot with the platform.