📦 Java Companion Sheet for Robocode

🔤 Variables & Data Types

int count = 10;         // whole number
double energy = 99.9;   // decimal number
String name = "Bot";    // text
boolean alive = true;   // true or false

🔁 Loops

while (isRunning()) {
    forward(100);
    turnRight(90);
}
 
for (int i = 0; i < 4; i++) {
    turnLeft(90);
    back(50);
}

🚦 Conditionals

if (energy < 20) {
    fire(0.5);
} else if (energy < 50) {
    fire(1.5);
} else {
    fire(3);
}

🔧 Methods

public void myMove() {
    forward(100);
    turnRight(90);
}

📚 Classes & Objects

BotState state = getBotState();
double x = state.getX();

🤖 Robocode Tank Royale Basics

🔨 Bot Skeleton

public class MyBot extends Bot {
    @Override
    public void run() {
        while (isRunning()) {
            forward(100);
            turnRight(90);
        }
    }
 
    @Override
    public void onScannedBot(ScannedBotEvent e) {
        fire(1);
    }
}

🚗 Movement Commands

forward(100);       // move forward
back(50);            // move backward
turnLeft(90);        // turn left
turnRight(90);       // turn right

🔫 Fire and Heat

fire(2.5);           // fire bullet (0.1 to 3.0)
getGunHeat();        // check if gun is cool

Bullet speed = 20 - 3 × firepower

🧠 Radar & Gun

turnGunRight(30);
turnRadarLeft(90);
  • Gun turn limit: 20°/turn
  • Radar turn limit: 45°/turn

📍 Bot State

getX(), getY()               // position
getDirection()               // facing angle
getEnergy()                  // current energy
getGunDirection(), getRadarDirection()

📡 Events

onScannedBot(ScannedBotEvent e)
onHitByBullet(HitByBulletEvent e)
onHitWall(HitWallEvent e)

Use @Override to define behavior.

⚙️ Utilities

System.out.println("debug")  // print to console

💡 Tips for Winning

  • Stay moving: dodging is defense
  • Use low firepower when energy is low
  • Turn perpendicular to enemy fire
  • Scan frequently: keep tracking bots
  • Avoid running into the walls