robocode

Class JuniorRobot

Implemented Interfaces:
IBasicRobot, IJuniorRobot

public class JuniorRobot
extends robocode._RobotBase
implements IJuniorRobot

This is the simplest robot type, which is simpler than the Robot and AdvancedRobot classes. The JuniorRobot has a simplified model, in purpose of teaching programming skills to inexperienced in programming students. The simplified robot model will keep player from overwhelming of Robocode's rules, programming syntax and programming concept.

Instead of using getters and setters, public fields are provided for receiving information like the last scanned robot, the coordinate of the robot etc.

All methods on this class are blocking calls, i.e. they do not return before their action has been completed and will at least take one turn to execute. However, setting colors is executed immediately and does not cost a turn to perform.

Authors:
Nutch Poovarawan from Cubic Creative (designer)
Flemming N. Larsen (implementor)
Pavel Savara (contributor)
Since:
1.4
See Also:
Robot, AdvancedRobot, TeamRobot, Droid

Field Summary

static int
black
The color black (0x000000)
static int
blue
The color blue (0x0000FF)
static int
brown
The color brown (0x8B4513)
int
energy
Current energy of this robot, where 100 means full energy and 0 means no energy (dead).
int
fieldHeight
Contains the height of the battlefield.
int
fieldWidth
Contains the width of the battlefield.
static int
gray
The color gray (0x808080)
static int
green
The color green (0x008000)
int
gunBearing
Current gun heading angle of this robot compared to its body (in degrees).
int
gunHeading
Current gun heading angle of this robot (in degrees).
boolean
gunReady
Flag specifying if the gun is ready to fire, i.e.
int
heading
Current heading angle of this robot (in degrees).
int
hitByBulletAngle
Latest angle from where this robot was hit by a bullet (in degrees).
int
hitByBulletBearing
Latest angle from where this robot was hit by a bullet (in degrees) compared to the body of this robot.
int
hitRobotAngle
Latest angle where this robot has hit another robot (in degrees).
int
hitRobotBearing
Latest angle where this robot has hit another robot (in degrees) compared to the body of this robot.
int
hitWallAngle
Latest angle where this robot has hit a wall (in degrees).
int
hitWallBearing
Latest angle where this robot has hit a wall (in degrees) compared to the body of this robot.
static int
orange
The color orange (0xFFA500)
int
others
Current number of other robots on the battle field.
static int
purple
The color purple (0x800080)
static int
red
The color red (0xFF0000)
int
robotX
Current horizontal location of this robot (in pixels).
int
robotY
Current vertical location of this robot (in pixels).
int
scannedAngle
Current angle to the scanned nearest other robot (in degrees).
int
scannedBearing
Current angle to the scanned nearest other robot (in degrees) compared to the body of this robot.
int
scannedDistance
Current distance to the scanned nearest other robot (in pixels).
int
scannedEnergy
Current energy of scanned nearest other robot.
int
scannedHeading
Current heading of the scanned nearest other robot (in degrees).
int
scannedVelocity
Current velocity of the scanned nearest other robot.
static int
white
The color white (0xFFFFFF)
static int
yellow
The color yellow (0xFFFF00)

Method Summary

void
ahead(int distance)
Moves this robot forward by pixels.
void
back(int distance)
Moves this robot backward by pixels.
void
bearGunTo(int angle)
Turns the gun to the specified angle (in degrees) relative to body of this robot.
void
doNothing()
Skips a turn.
void
doNothing(int turns)
Skips the specified number of turns.
void
fire()
Fires a bullet with the default power of 1.
void
fire(double power)
Fires a bullet with the specified bullet power, which is between 0.1 and 3 where 3 is the maximum bullet power.
IBasicEvents
getBasicEventListener()
Do not call this method!

Runnable
getRobotRunnable()
Do not call this method!

void
onHitByBullet()
This event methods is called from the game when this robot has been hit by another robot's bullet.
void
onHitRobot()
This event methods is called from the game when a bullet from this robot has hit another robot.
void
onHitWall()
This event methods is called from the game when this robot has hit a wall.
void
onScannedRobot()
This event method is called from the game when the radar detects another robot.
void
run()
The main method in every robot.
void
setColors(int bodyColor, int gunColor, int radarColor)
Sets the colors of the robot.
void
setColors(int bodyColor, int gunColor, int radarColor, int bulletColor, int scanArcColor)
Sets the colors of the robot.
void
turnAheadLeft(int distance, int degrees)
Moves this robot forward by pixels and turns this robot left by degrees at the same time.
void
turnAheadRight(int distance, int degrees)
Moves this robot forward by pixels and turns this robot right by degrees at the same time.
void
turnBackLeft(int distance, int degrees)
Moves this robot backward by pixels and turns this robot left by degrees at the same time.
void
turnBackRight(int distance, int degrees)
Moves this robot backward by pixels and turns this robot right by degrees at the same time.
void
turnGunLeft(int degrees)
Turns the gun left by degrees.
void
turnGunRight(int degrees)
Turns the gun right by degrees.
void
turnGunTo(int angle)
Turns the gun to the specified angle (in degrees).
void
turnLeft(int degrees)
Turns this robot left by degrees.
void
turnRight(int degrees)
Turns this robot right by degrees.
void
turnTo(int angle)
Turns this robot to the specified angle (in degrees).

Field Details

black

public static final int black
The color black (0x000000)
Field Value:
0

blue

public static final int blue
The color blue (0x0000FF)
Field Value:
255

brown

public static final int brown
The color brown (0x8B4513)
Field Value:
9127187

energy

public int energy
Current energy of this robot, where 100 means full energy and 0 means no energy (dead).

fieldHeight

public int fieldHeight
Contains the height of the battlefield.

fieldWidth

public int fieldWidth
Contains the width of the battlefield.

gray

public static final int gray
The color gray (0x808080)
Field Value:
8421504

green

public static final int green
The color green (0x008000)
Field Value:
32768

gunBearing

public int gunBearing
Current gun heading angle of this robot compared to its body (in degrees).

gunHeading

public int gunHeading
Current gun heading angle of this robot (in degrees).

gunReady

public boolean gunReady
Flag specifying if the gun is ready to fire, i.e. gun heat <= 0. true means that the gun is able to fire; false means that the gun cannot fire yet as it still needs to cool down.

heading

public int heading
Current heading angle of this robot (in degrees).

hitByBulletAngle

public int hitByBulletAngle

hitByBulletBearing

public int hitByBulletBearing

hitRobotAngle

public int hitRobotAngle

hitRobotBearing

public int hitRobotBearing

hitWallAngle

public int hitWallAngle

hitWallBearing

public int hitWallBearing

orange

public static final int orange
The color orange (0xFFA500)
Field Value:
16753920

others

public int others
Current number of other robots on the battle field.

purple

public static final int purple
The color purple (0x800080)
Field Value:
8388736

red

public static final int red
The color red (0xFF0000)
Field Value:
16711680

robotX

public int robotX
Current horizontal location of this robot (in pixels).

robotY

public int robotY
Current vertical location of this robot (in pixels).

scannedAngle

public int scannedAngle

scannedBearing

public int scannedBearing

scannedDistance

public int scannedDistance

scannedEnergy

public int scannedEnergy

scannedHeading

public int scannedHeading

scannedVelocity

public int scannedVelocity

white

public static final int white
The color white (0xFFFFFF)
Field Value:
16777215

yellow

public static final int yellow
The color yellow (0xFFFF00)
Field Value:
16776960

Method Details

ahead

public void ahead(int distance)
Moves this robot forward by pixels.
Parameters:
distance - the amount of pixels to move forward

back

public void back(int distance)
Moves this robot backward by pixels.
Parameters:
distance - the amount of pixels to move backward

bearGunTo

public void bearGunTo(int angle)
Turns the gun to the specified angle (in degrees) relative to body of this robot. The gun will turn to the side with the shortest delta angle to the specified angle.
Parameters:
angle - the angle to turn the gun to relative to the body of this robot

doNothing

public void doNothing()
Skips a turn.

doNothing

public void doNothing(int turns)
Skips the specified number of turns.
Parameters:
turns - the number of turns to skip

fire

public void fire()
Fires a bullet with the default power of 1. If the gun heat is more than 0 and hence cannot fire, this method will suspend until the gun is ready to fire, and then fire a bullet.

fire

public void fire(double power)
Fires a bullet with the specified bullet power, which is between 0.1 and 3 where 3 is the maximum bullet power. If the gun heat is more than 0 and hence cannot fire, this method will suspend until the gun is ready to fire, and then fire a bullet.
Parameters:
power - between 0.1 and 3

getBasicEventListener

public final IBasicEvents getBasicEventListener()
Do not call this method!

Specified by:
getBasicEventListener in interface IBasicRobot

getRobotRunnable

public final Runnable getRobotRunnable()
Do not call this method!

Specified by:
getRobotRunnable in interface IBasicRobot

onHitByBullet

public void onHitByBullet()

onHitRobot

public void onHitRobot()

onHitWall

public void onHitWall()

onScannedRobot

public void onScannedRobot()

run

public void run()
The main method in every robot. You must override this to set up your robot's basic behavior.

Example:

   // A basic robot that moves around in a square
   public void run() {
       ahead(100);
       turnRight(90);
   }
 
This method is automatically re-called when it has returned.

setColors

public void setColors(int bodyColor,
                      int gunColor,
                      int radarColor)
Sets the colors of the robot. The color values are RGB values. You can use the colors that are already defined for this class.
Parameters:
bodyColor - the RGB color value for the body
gunColor - the RGB color value for the gun
radarColor - the RGB color value for the radar

setColors

public void setColors(int bodyColor,
                      int gunColor,
                      int radarColor,
                      int bulletColor,
                      int scanArcColor)
Sets the colors of the robot. The color values are RGB values. You can use the colors that are already defined for this class.
Parameters:
bodyColor - the RGB color value for the body
gunColor - the RGB color value for the gun
radarColor - the RGB color value for the radar
bulletColor - the RGB color value for the bullets
scanArcColor - the RGB color value for the scan arc

turnAheadLeft

public void turnAheadLeft(int distance,
                          int degrees)
Moves this robot forward by pixels and turns this robot left by degrees at the same time. The robot will move in a curve that follows a perfect circle, and the moving and turning will end at the same time.

Note that the max. velocity and max. turn rate is automatically adjusted, which means that the robot will move slower the sharper the turn is compared to the distance.

Parameters:
distance - the amount of pixels to move forward
degrees - the amount of degrees to turn to the left

turnAheadRight

public void turnAheadRight(int distance,
                           int degrees)
Moves this robot forward by pixels and turns this robot right by degrees at the same time. The robot will move in a curve that follows a perfect circle, and the moving and turning will end at the same time.

Note that the max. velocity and max. turn rate is automatically adjusted, which means that the robot will move slower the sharper the turn is compared to the distance.

Parameters:
distance - the amount of pixels to move forward
degrees - the amount of degrees to turn to the right

turnBackLeft

public void turnBackLeft(int distance,
                         int degrees)
Moves this robot backward by pixels and turns this robot left by degrees at the same time. The robot will move in a curve that follows a perfect circle, and the moving and turning will end at the same time.

Note that the max. velocity and max. turn rate is automatically adjusted, which means that the robot will move slower the sharper the turn is compared to the distance.

Parameters:
distance - the amount of pixels to move backward
degrees - the amount of degrees to turn to the left

turnBackRight

public void turnBackRight(int distance,
                          int degrees)
Moves this robot backward by pixels and turns this robot right by degrees at the same time. The robot will move in a curve that follows a perfect circle, and the moving and turning will end at the same time.

Note that the max. velocity and max. turn rate is automatically adjusted, which means that the robot will move slower the sharper the turn is compared to the distance.

Parameters:
distance - the amount of pixels to move backward
degrees - the amount of degrees to turn to the right

turnGunLeft

public void turnGunLeft(int degrees)
Turns the gun left by degrees.
Parameters:
degrees - the amount of degrees to turn the gun to the left

turnGunRight

public void turnGunRight(int degrees)
Turns the gun right by degrees.
Parameters:
degrees - the amount of degrees to turn the gun to the right

turnGunTo

public void turnGunTo(int angle)
Turns the gun to the specified angle (in degrees). The gun will turn to the side with the shortest delta angle to the specified angle.
Parameters:
angle - the angle to turn the gun to

turnLeft

public void turnLeft(int degrees)
Turns this robot left by degrees.
Parameters:
degrees - the amount of degrees to turn to the left

turnRight

public void turnRight(int degrees)
Turns this robot right by degrees.
Parameters:
degrees - the amount of degrees to turn to the right

turnTo

public void turnTo(int angle)
Turns this robot to the specified angle (in degrees). The robot will turn to the side with the shortest delta angle to the specified angle.
Parameters:
angle - the angle to turn this robot to