Objective
Blue and red each execute an autonomous program. A side wins as soon as a command identifies the opposing program core—through direct growth contact, a valid scan or a capture attempt against the core.
Game concept
You do not steer a robot button by button. You write a program that reads the cube, grows, decides and hunts the opposing core on its own.
Blue and red each execute an autonomous program. A side wins as soon as a command identifies the opposing program core—through direct growth contact, a valid scan or a capture attempt against the core.
Both sides receive units simultaneously. A command collects units until its full cost is paid and then applies atomically. An 8-unit command changes nothing during units 1 through 7; the complete action happens at 8/8.
Many commands start at the active own cube. Selection commands move this origin. Signal search, scans, free-direction search and direction commands update the stored preferred direction for later actions.
Sensing, growth, capture, marker and retraction commands can produce a result. Go If may consume it exactly once and only immediately afterward. Any selection, wait or control operation in between makes it stale.
Every own cube must remain connected to the core through adjacent cells. Safe deletion commands prevent your own branches from being detached. Enemy structure cut off from its core becomes neutral and can be captured cheaply.
The Guided Tour combines explanations, short tasks and a training sandbox. Then 20 fixed-condition tutorial missions, star objectives and a five-duel finale build toward a robust tournament strategy.
Free battles and batch tests can apply the same class to both programs: lightweight up to 20, middleweight up to 50, heavyweight up to 100 active command lines, or unrestricted open class. Comments, labels and disabled commands do not count.
The leaderboard and batch tests of 100 to 10,000 duels expose progress, weaknesses and concrete code recommendations. Programs regularly swap colors in batch tests so neither side can bias the full result.
The most important mental model
A result is not a permanent register. It is a one-time fresh state for the immediately following Go If command.
scanDirection(range: 6)
goIf(.coreAura, to: .closeCombat)
// no other command in between