@@ -6,6 +6,7 @@ date-added: 2025-11-04T16:58:27.268231Z
66players: 2+
77language: Python
88split: test
9+ ladder: true
910
1011** What is BattleSnake?**
1112BattleSnake is a multiplayer programming game where you control a snake navigating a grid-based board. Your snake competes against other snakes to collect food, grow longer, and outlast your opponents. The last snake alive wins.
@@ -21,6 +22,129 @@ Success requires balancing multiple objectives: finding food to avoid starvation
2122
2223---
2324
25+ <h2 id =" cc-ladder " >🪜 CC:Ladder</h2 >
26+
27+ > See [ Introducing CC: Ladder ] ( /insights/20260115_human_ai_ladder/ ) for the full format and motivation.
28+
29+ The ladder is built from ** 50 open-source human BattleSnakes** (hosted as ` human/* ` branches on [ CodeClash-ai/BattleSnake] ( https://github.com/CodeClash-ai/BattleSnake ) ). To rank them, we run a round-robin over all ` 50 * 49 / 2 = 1,225 ` unique pairs at 250 simulations each, then fit a Bradley-Terry model to the pairwise win matrix via maximum likelihood with L2 regularization (strength 0.01, base Elo 1200, slope 400).
30+
31+ <div class =" ladder-stats " ><div class =" ladder-stat " ><span class =" ladder-stat-num " >50</span ><span class =" ladder-stat-label " >human bots</span ></div ><div class =" ladder-stat " ><span class =" ladder-stat-num " >379– ; 1,883</span ><span class =" ladder-stat-label " >Elo range</span ></div ><div class =" ladder-stat " ><span class =" ladder-stat-num " >1,269</span ><span class =" ladder-stat-label " >median Elo</span ></div ><div class =" ladder-stat " ><span class =" ladder-stat-num " >1,504</span ><span class =" ladder-stat-label " >spread</span ></div ></div >
32+
33+ The 50 snakes span ** 379&ndash ; 1,883 Elo** &mdash ; a 1,504-point spread &mdash ; but the climb is gradual: the top snake (` robosnake ` ) leads the runner-up by just 68 Elo, and half the field sits between 968 and 1,433. With no runaway favorite, every rung is a meaningful step up.
34+
35+ <figure class =" ladder-figure " >
36+ <svg viewBox =" 0 0 680 250 " role =" img " aria-label =" Histogram of snakes Elo ratings " preserveAspectRatio =" xMidYMid meet " >
37+ <line class =" grid " x1 =" 46 " y1 =" 210.0 " x2 =" 664 " y2 =" 210.0 " />
38+ <text class =" tick " x =" 38 " y =" 214.0 " text-anchor =" end " >0</text >
39+ <line class =" grid " x1 =" 46 " y1 =" 146.0 " x2 =" 664 " y2 =" 146.0 " />
40+ <text class =" tick " x =" 38 " y =" 150.0 " text-anchor =" end " >5</text >
41+ <line class =" grid " x1 =" 46 " y1 =" 82.0 " x2 =" 664 " y2 =" 82.0 " />
42+ <text class =" tick " x =" 38 " y =" 86.0 " text-anchor =" end " >10</text >
43+ <line class =" grid " x1 =" 46 " y1 =" 18.0 " x2 =" 664 " y2 =" 18.0 " />
44+ <text class =" tick " x =" 38 " y =" 22.0 " text-anchor =" end " >15</text >
45+ <path class =" bar " d =" M47.5,210.0 L47.5,201.2 Q47.5,197.2 51.5,197.2 L92.0,197.2 Q96.0,197.2 96.0,201.2 L96.0,210.0 Z " ><title >379 to 504 Elo: 1 bot</title ></path >
46+ <path class =" bar " d =" M99.0,210.0 L99.0,201.2 Q99.0,197.2 103.0,197.2 L143.5,197.2 Q147.5,197.2 147.5,201.2 L147.5,210.0 Z " ><title >504 to 630 Elo: 1 bot</title ></path >
47+ <path class =" bar " d =" M150.5,210.0 L150.5,150.0 Q150.5,146.0 154.5,146.0 L195.0,146.0 Q199.0,146.0 199.0,150.0 L199.0,210.0 Z " ><title >630 to 755 Elo: 5 bots</title ></path >
48+ <path class =" bar " d =" M202.0,210.0 L202.0,188.4 Q202.0,184.4 206.0,184.4 L246.5,184.4 Q250.5,184.4 250.5,188.4 L250.5,210.0 Z " ><title >755 to 880 Elo: 2 bots</title ></path >
49+ <path class =" bar " d =" M253.5,210.0 L253.5,137.2 Q253.5,133.2 257.5,133.2 L298.0,133.2 Q302.0,133.2 302.0,137.2 L302.0,210.0 Z " ><title >880 to 1,006 Elo: 6 bots</title ></path >
50+ <path class =" bar " d =" M305.0,210.0 L305.0,162.8 Q305.0,158.8 309.0,158.8 L349.5,158.8 Q353.5,158.8 353.5,162.8 L353.5,210.0 Z " ><title >1,006 to 1,131 Elo: 4 bots</title ></path >
51+ <path class =" bar " d =" M356.5,210.0 L356.5,162.8 Q356.5,158.8 360.5,158.8 L401.0,158.8 Q405.0,158.8 405.0,162.8 L405.0,210.0 Z " ><title >1,131 to 1,256 Elo: 4 bots</title ></path >
52+ <path class =" bar " d =" M408.0,210.0 L408.0,73.2 Q408.0,69.2 412.0,69.2 L452.5,69.2 Q456.5,69.2 456.5,73.2 L456.5,210.0 Z " ><title >1,256 to 1,382 Elo: 11 bots</title ></path >
53+ <path class =" bar " d =" M459.5,210.0 L459.5,98.8 Q459.5,94.8 463.5,94.8 L504.0,94.8 Q508.0,94.8 508.0,98.8 L508.0,210.0 Z " ><title >1,382 to 1,507 Elo: 9 bots</title ></path >
54+ <path class =" bar " d =" M511.0,210.0 L511.0,150.0 Q511.0,146.0 515.0,146.0 L555.5,146.0 Q559.5,146.0 559.5,150.0 L559.5,210.0 Z " ><title >1,507 to 1,632 Elo: 5 bots</title ></path >
55+ <path class =" bar " d =" M614.0,210.0 L614.0,188.4 Q614.0,184.4 618.0,184.4 L658.5,184.4 Q662.5,184.4 662.5,188.4 L662.5,210.0 Z " ><title >1,758 to 1,883 Elo: 2 bots</title ></path >
56+ <line class =" axis " x1 =" 46 " y1 =" 210 " x2 =" 664 " y2 =" 210 " stroke-width =" 1.5 " />
57+ <text class =" tick " x =" 46.0 " y =" 228.0 " text-anchor =" middle " >379</text >
58+ <text class =" tick " x =" 200.5 " y =" 228.0 " text-anchor =" middle " >755</text >
59+ <text class =" tick " x =" 355.0 " y =" 228.0 " text-anchor =" middle " >1,131</text >
60+ <text class =" tick " x =" 509.5 " y =" 228.0 " text-anchor =" middle " >1,507</text >
61+ <text class =" tick " x =" 664.0 " y =" 228.0 " text-anchor =" middle " >1,883</text >
62+ <line class =" median " x1 =" 411.5 " y1 =" 18 " x2 =" 411.5 " y2 =" 210 " />
63+ <text class =" median-label " x =" 417.5 " y =" 28.0 " text-anchor =" start " >median 1,269</text >
64+ <text class =" tick " x =" 355.0 " y =" 246 " text-anchor =" middle " >Elo rating → ; </text >
65+ </svg >
66+ <figcaption >Distribution of Elo across the 50 human BattleSnakes. The field climbs fairly evenly, with no single runaway leader.</figcaption >
67+ </figure >
68+
69+ The top ten:
70+
71+ 1 . human/smallsco/robosnake: ** 1882.8**
72+ 2 . human/jhawthorn/snek: ** 1814.4**
73+ 3 . human/tyrelh/tyrelh-2019: ** 1631.7**
74+ 4 . human/aleksiy325/snek-two: ** 1617.1**
75+ 5 . human/hirethissnake/sneaky-snake: ** 1519.2**
76+ 6 . human/tbgiles/feisty-snake: ** 1518.8**
77+ 7 . human/Petah/project-z: ** 1516.6**
78+ 8 . human/woofers/woofers-java: ** 1500.8**
79+ 9 . human/noahspriggs/tr-8r: ** 1472.6**
80+ 10 . human/tyrelh/tyrelh-2018: ** 1457.2**
81+
82+ <details >
83+ <summary >Show full BattleSnake rankings</summary >
84+
85+ <ol >
86+ <li >human/smallsco/robosnake: <b >1882.8</b ></li >
87+ <li >human/jhawthorn/snek: <b >1814.4</b ></li >
88+ <li >human/tyrelh/tyrelh-2019: <b >1631.7</b ></li >
89+ <li >human/aleksiy325/snek-two: <b >1617.1</b ></li >
90+ <li >human/hirethissnake/sneaky-snake: <b >1519.2</b ></li >
91+ <li >human/tbgiles/feisty-snake: <b >1518.8</b ></li >
92+ <li >human/Petah/project-z: <b >1516.6</b ></li >
93+ <li >human/woofers/woofers-java: <b >1500.8</b ></li >
94+ <li >human/noahspriggs/tr-8r: <b >1472.6</b ></li >
95+ <li >human/tyrelh/tyrelh-2018: <b >1457.2</b ></li >
96+ <li >human/MorganConrad/sisiutl: <b >1451.7</b ></li >
97+ <li >human/altersaddle/untimely-neglected-wearable: <b >1447.8</b ></li >
98+ <li >human/JerryKott/jerrykott-2017: <b >1427.7</b ></li >
99+ <li >human/rdbrck/bountysnake2018: <b >1415.3</b ></li >
100+ <li >human/zakwht/zakwht-2018: <b >1395.9</b ></li >
101+ <li >human/tyrelh/tyrelh-python: <b >1383.5</b ></li >
102+ <li >human/joshhartmann11/battlejake: <b >1381.1</b ></li >
103+ <li >human/xtagon/nagini: <b >1376.4</b ></li >
104+ <li >human/TheApX/hungry: <b >1369.7</b ></li >
105+ <li >human/kentmacdonald2/beames: <b >1364.2</b ></li >
106+ <li >human/coreyja/famished-frank: <b >1357.7</b ></li >
107+ <li >human/joshhartmann11/battlejake2019: <b >1338.8</b ></li >
108+ <li >human/ChaelCodes/cornelius: <b >1330.1</b ></li >
109+ <li >human/MorganConrad/tantilla: <b >1305.7</b ></li >
110+ <li >human/jackisherwood/battlesnake-elon: <b >1276.4</b ></li >
111+ <li >human/Flipez/flipez-crystal: <b >1260.7</b ></li >
112+ <li >human/coreyja/gigantic-george: <b >1259.6</b ></li >
113+ <li >human/coreyja/eremetic-eric: <b >1252.0</b ></li >
114+ <li >human/nbw/nbw-ruby: <b >1193.8</b ></li >
115+ <li >human/OliverMKing/astar-snake: <b >1185.7</b ></li >
116+ <li >human/coreyja/amphibious-arthur: <b >1182.4</b ></li >
117+ <li >human/moxuz/pinky-snek: <b >1100.5</b ></li >
118+ <li >human/Spenca/vulture-snake: <b >1051.6</b ></li >
119+ <li >human/rdbrck/btas: <b >1045.0</b ></li >
120+ <li >human/tim-hub/awesome-snake: <b >1037.1</b ></li >
121+ <li >human/zacpez/scape-goat: <b >1001.1</b ></li >
122+ <li >human/coreyja/jump-flooding: <b >1001.0</b ></li >
123+ <li >human/coreyja/coreyja-rs: <b >969.3</b ></li >
124+ <li >human/coreyja/bombastic-bob: <b >965.2</b ></li >
125+ <li >human/ccSnake2018/ccsnake: <b >920.8</b ></li >
126+ <li >human/Xe/since: <b >892.1</b ></li >
127+ <li >human/nbw/nbw-crystal: <b >875.4</b ></li >
128+ <li >human/m-schier/kreuzotter: <b >831.8</b ></li >
129+ <li >human/coreyja/devious-devin: <b >730.4</b ></li >
130+ <li >human/graeme-hill/snakebot: <b >712.5</b ></li >
131+ <li >human/coreyja/improbable-irene: <b >702.2</b ></li >
132+ <li >human/csauve/bookworm: <b >693.8</b ></li >
133+ <li >human/Nettogrof/nessegrev-java: <b >647.3</b ></li >
134+ <li >human/Nettogrof/nessegrev-julia: <b >556.2</b ></li >
135+ <li >human/pambrose/pambrose-kotlin: <b >379.2</b ></li >
136+ </ol >
137+
138+ </details >
139+
140+ ** Run it yourself.** [ Set up CodeClash] ( https://docs.codeclash.ai/quickstart/#installation ) and send a model up the ladder with:
141+
142+ <pre class =" prettyprint lang-bash " >
143+ uv run codeclash ladder run configs/ablations/ladder/battlesnake.yaml
144+ </pre >
145+
146+ ---
147+
24148### References
25149
26150* [ BattleSnake Official Documentation] ( https://docs.battlesnake.com/ )
0 commit comments