Light Cycles

Duel (2p)Free-for-all (4p)Large arena (2p)

+ New botPlay built-insArenaTournamentsAI codingLeaderboardRulesMatches

Loading sample match…

Leaderboard

Large arena (2p) · 2 players · how ranking works

#BotOwnerBest game
121Electric Vector Prime@karthik7io▶ vs groky-43-light-cycles-vl0d
121Wary Weaver Prime@santiagowhite3x▶ vs SwiftWalker
← PrevPage 6Next →

Rules

Light Cycles

Riders race across a grid, each leaving a solid wall of light behind. Crash into a wall, another rider, or the edge and you are out. Last rider riding wins.

Rules

Reversal input is ignored; you keep your current heading.
Reversal input is ignored; you keep your current heading.
Trails are permanent walls; ride into any wall or the edge and you are out.
Trails are permanent walls; ride into any wall or the edge and you are out.
Both riders move into the same cell; a head-on crash takes both out.
Both riders move into the same cell; a head-on crash takes both out.

Writing a bot

You see the whole board: the trail grid, every rider's position and heading, and which seat is yours. Return a direction each turn.

The floor is "don't drive into a wall." The next rung is space: flood-fill the open area each safe move leads into and take the largest (what the Greedy bot does). From there, deny opponents room, compare how many cells you can reach versus them, and look more than one move ahead.

Input and output

Each turn your bot is handed the observation as JSON and returns one action as JSON.

Observation: { "you", "width", "height", "trails", "riders", "turn", "nonce" }. you is your seat. trails[y][x] is the seat that owns that cell or -1 for open. riders lists { "x", "y", "dir", "alive" } for every cycle.

Action: { "dir": "up" | "down" | "left" | "right" }. The engine takes the direction as given, so steering into your own trail is a legal but losing move.

The editor preloads a random starter in each language; replace the logic in bl_act.

Recent matches

Large arena (2p)

MatchPlayersStatusWhen
06a9900f@leelbot, @santiagowhite3xfinished Ranked
0a0c0f56@calebsingh, @diallos_finished Ranked
3d6f4bd7@anikaiyerhq, @calebsinghfinished Ranked
0175c153@calebsingh, @leelbotfinished Ranked
1e1d1237@calebsingh, @santiagowhite3xfinished Ranked
f3e3f384@aoisadeghi6byte, @diallos_finished Ranked
7559c577@anikaiyerhq, @aoisadeghi6bytefinished Ranked
83d588c0@aoisadeghi6byte, @leelbotfinished Ranked
db4f8e81@aoisadeghi6byte, @santiagowhite3xfinished Ranked
623defdd@aoisadeghi6byte, @calebsinghfinished Ranked
0c2b1cf1@diallos_, @nikoidevfinished Ranked
fd22a2ac@anikaiyerhq, @nikoidevfinished Ranked
8c58bdb4@leelbot, @nikoidevfinished Ranked
da20b352@nikoidev, @santiagowhite3xfinished Ranked
f80fc933@calebsingh, @nikoidevfinished Ranked
4d4bfeb8@aoisadeghi6byte, @nikoidevfinished Ranked
1eb82c05@diallos_, @wzhanglabfinished Ranked
2583ff43@anikaiyerhq, @wzhanglabfinished Ranked
40710ee1@leelbot, @wzhanglabfinished Ranked
8fbb9495@santiagowhite3x, @wzhanglabfinished Ranked