ai-code-battle/notes/bf-1pwz.md
jedarden 6c803e41d2 docs(bf-1pwz): complete bot language and purpose analysis for all 21 bots
- Read each bot's entry point file to determine programming language
- Inferred purpose from code structure and comments
- Created annotated table with all 21 bots
- Language distribution: Rust(4), Java(3), Python(4), Go(4), TypeScript(2), JavaScript(2), C#(1), PHP(1)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 17:17:05 -04:00

3.3 KiB

Bot Language and Purpose Analysis

All 21 Bots Annotated

Bot Name Language Purpose
assassin Rust Decapitation archetype - all units rush the enemy core directly, ignoring enemy units and economy
coordinator TypeScript Dynamic role allocation - assigns each bot a role (Attacker/Harvester/Defender/Scout) each turn, rebalancing based on game state
defender C# Core-hugging perimeter defense - bots patrol evenly-spaced slots around nearest active core and intercept enemies entering perimeter
economist Python Energy starvation through node contesting - deliberately contests energy nodes enemies are approaching (destroying energy) while harvesting uncontested nodes
farmer Go Energy collection and farming strategy
gatherer Go Maximizes energy collection while avoiding combat
guardian PHP Defensive core protection with cautious expansion - maintains perimeter bots within 5 tiles of each owned core
hunter Java Targets isolated enemies for efficient kills - sends pairs of bots to intercept isolated enemies (≥4 tiles from friendly support), defaults to gathering when no isolated targets
kamikaze JavaScript Aggressive attacker that finds and attacks nearest enemy
leader-targeter Java In N>2 games, always directs all units toward current score leader (kingmaker dynamic); in 2-player games, falls back to straight aggressor
nomad Python Constant relocation archetype - picks target region every ~20 turns, migrates all units toward it, briefly engages on arrival, then picks new region
opportunist Go Opportunistic strategy taking advantage of tactical opportunities
pacifist JavaScript Pure evasion, never attacks - moves to maximize distance from nearest enemy, retreats toward own core if cornered
phalanx Rust Tight formation archetype - all units move as coordinated group, maximizing local firepower at cost of map coverage
raider Java Hit-and-run harassment - scouts lone enemy bots, attacks from flank for 1-2 turns, then retreats; never attacks groups of ≥3 enemies
random Python Makes random valid moves - reference implementation demonstrating HTTP protocol
rusher Rust Rushes enemy cores aggressively using BFS pathfinding, ignoring energy and enemy bots unless they block path
scout Python Exploration-maximizing - maintains last-seen tick counter per cell, moves toward stalest unobserved cells, multiple bots assigned different map zones
siege Go Blocks enemy core spawning by surrounding cores
swarm TypeScript Formation-based combat strategy
zone-driver Rust Weaponizes the shrinking zone - positions units to block enemy escape routes inward, herds enemies toward zone edge for passive eliminations

Language Distribution

  • Rust: 4 bots (assassin, phalanx, rusher, zone-driver)
  • Java: 3 bots (hunter, leader-targeter, raider)
  • Python: 4 bots (economist, nomad, random, scout)
  • Go: 4 bots (farmer, gatherer, opportunist, siege)
  • TypeScript: 2 bots (coordinator, swarm)
  • JavaScript: 2 bots (kamikaze, pacifist)
  • C#: 1 bot (defender)
  • PHP: 1 bot (guardian)

Total: 21 bots