robocode
Class JuniorRobot

java.lang.Object
  extended by robocode._RobotBase
      extended by robocode.JuniorRobot
All Implemented Interfaces:
Runnable, IBasicRobot, IJuniorRobot

public class JuniorRobot
extends _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.

Since:
1.4
Author:
Nutch Poovarawan from Cubic Creative (designer), Flemming N. Larsen (original), Pavel Savara (contributor)
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. gun heat <= 0.
 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)
 
Fields inherited from class robocode._RobotBase
out
 
Constructor Summary
JuniorRobot()
           
 
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).
 
Methods inherited from class robocode._RobotBase
finalize, setOut, setPeer
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface robocode.robotinterfaces.IBasicRobot
setOut, setPeer
 

Field Detail

black

public static final int black
The color black (0x000000)

See Also:
Constant Field Values

white

public static final int white
The color white (0xFFFFFF)

See Also:
Constant Field Values

red

public static final int red
The color red (0xFF0000)

See Also:
Constant Field Values

orange

public static final int orange
The color orange (0xFFA500)

See Also:
Constant Field Values

yellow

public static final int yellow
The color yellow (0xFFFF00)

See Also:
Constant Field Values

green

public static final int green
The color green (0x008000)

See Also:
Constant Field Values

blue

public static final int blue
The color blue (0x0000FF)

See Also:
Constant Field Values

purple

public static final int purple
The color purple (0x800080)

See Also:
Constant Field Values

brown

public static final int brown
The color brown (0x8B4513)

See Also:
Constant Field Values

gray

public static final int gray
The color gray (0x808080)

See Also:
Constant Field Values

fieldWidth

public int fieldWidth
Contains the width of the battlefield.

See Also:
fieldWidth

fieldHeight

public int fieldHeight
Contains the height of the battlefield.

See Also:
fieldWidth

others

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


energy

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


robotX

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

See Also:
robotY

robotY

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

See Also:
robotX

heading

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

See Also:
turnLeft(int), turnRight(int), turnTo(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackLeft(int, int), turnBackRight(int, int)

gunHeading

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

See Also:
gunBearing, turnGunLeft(int), turnGunRight(int), turnGunTo(int), bearGunTo(int)

gunBearing

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

See Also:
gunHeading, turnGunLeft(int), turnGunRight(int), turnGunTo(int), bearGunTo(int)

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.

See Also:
fire(), fire(double)

scannedDistance

public int scannedDistance
Current distance to the scanned nearest other robot (in pixels). If there is no robot in the radar's sight, this field will be less than 0, i.e -1. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedAngle, scannedBearing, scannedEnergy, scannedVelocity, scannedHeading

scannedAngle

public int scannedAngle
Current angle to the scanned nearest other robot (in degrees). If there is no robot in the radar's sight, this field will be less than 0, i.e -1. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedDistance, scannedBearing, scannedEnergy, scannedVelocity, scannedHeading

scannedBearing

public int scannedBearing
Current angle to the scanned nearest other robot (in degrees) compared to the body of this robot. If there is no robot in the radar's sight, this field will be less than 0, i.e -1. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedDistance, scannedAngle, scannedEnergy, scannedVelocity, scannedHeading

scannedVelocity

public int scannedVelocity
Current velocity of the scanned nearest other robot. If there is no robot in the radar's sight, this field will be -99. Note that a positive value means that the robot moves forward, a negative value means that the robot moved backward, and 0 means that the robot is not moving at all. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedDistance, scannedAngle, scannedBearing, scannedEnergy, scannedHeading

scannedHeading

public int scannedHeading
Current heading of the scanned nearest other robot (in degrees). If there is no robot in the radar's sight, this field will be less than 0, i.e -1. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedDistance, scannedAngle, scannedBearing, scannedEnergy, scannedVelocity

scannedEnergy

public int scannedEnergy
Current energy of scanned nearest other robot. If there is no robot in the radar's sight, this field will be less than 0, i.e -1. This field will not be updated while onScannedRobot() event is active.

See Also:
onScannedRobot(), scannedDistance, scannedAngle, scannedBearing, scannedVelocity

hitByBulletAngle

public int hitByBulletAngle
Latest angle from where this robot was hit by a bullet (in degrees). If the robot has never been hit, this field will be less than 0, i.e. -1. This field will not be updated while onHitByBullet() event is active.

See Also:
onHitByBullet(), hitByBulletBearing

hitByBulletBearing

public int hitByBulletBearing
Latest angle from where this robot was hit by a bullet (in degrees) compared to the body of this robot. If the robot has never been hit, this field will be less than 0, i.e. -1. This field will not be updated while onHitByBullet() event is active.

See Also:
onHitByBullet(), hitByBulletAngle

hitRobotAngle

public int hitRobotAngle
Latest angle where this robot has hit another robot (in degrees). If this robot has never hit another robot, this field will be less than 0, i.e. -1. This field will not be updated while onHitRobot() event is active.

See Also:
onHitRobot(), hitRobotBearing

hitRobotBearing

public int hitRobotBearing
Latest angle where this robot has hit another robot (in degrees) compared to the body of this robot. If this robot has never hit another robot, this field will be less than 0, i.e. -1. This field will not be updated while onHitRobot() event is active.

See Also:
onHitRobot(), hitRobotAngle

hitWallAngle

public int hitWallAngle
Latest angle where this robot has hit a wall (in degrees). If this robot has never hit a wall, this field will be less than 0, i.e. -1. This field will not be updated while onHitWall() event is active.

See Also:
onHitWall(), hitWallBearing

hitWallBearing

public int hitWallBearing
Latest angle where this robot has hit a wall (in degrees) compared to the body of this robot. If this robot has never hit a wall, this field will be less than 0, i.e. -1. This field will not be updated while onHitWall() event is active.

See Also:
onHitWall(), hitWallAngle
Constructor Detail

JuniorRobot

public JuniorRobot()
Method Detail

ahead

public void ahead(int distance)
Moves this robot forward by pixels.

Parameters:
distance - the amount of pixels to move forward
See Also:
back(int), robotX, robotY

back

public void back(int distance)
Moves this robot backward by pixels.

Parameters:
distance - the amount of pixels to move backward
See Also:
ahead(int), robotX, robotY

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
See Also:
gunHeading, gunBearing, turnGunLeft(int), turnGunRight(int), turnGunTo(int)

doNothing

public void doNothing()
Skips a turn.

See Also:
doNothing(int)

doNothing

public void doNothing(int turns)
Skips the specified number of turns.

Parameters:
turns - the number of turns to skip
See Also:
doNothing()

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.

See Also:
gunReady

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
See Also:
gunReady

getBasicEventListener

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

This method is called by the game to notify this robot about basic robot event. Hence, this method must be implemented so it returns your IBasicEvents listener.

Specified by:
getBasicEventListener in interface IBasicRobot
Returns:
listener to basic events or null if this robot should not receive the notifications.

getRobotRunnable

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

This method is called by the game to invoke the run() method of your robot, where the program of your robot is implemented.

Specified by:
getRobotRunnable in interface IBasicRobot
Returns:
a runnable implementation
See Also:
Runnable.run()

onHitByBullet

public void onHitByBullet()
This event methods is called from the game when this robot has been hit by another robot's bullet. When this event occurs the hitByBulletAngle and hitByBulletBearing fields values are automatically updated.

See Also:
hitByBulletAngle, hitByBulletBearing

onHitRobot

public void onHitRobot()
This event methods is called from the game when a bullet from this robot has hit another robot. When this event occurs the hitRobotAngle and hitRobotBearing fields values are automatically updated.

See Also:
hitRobotAngle, hitRobotBearing

onHitWall

public void onHitWall()
This event methods is called from the game when this robot has hit a wall. When this event occurs the hitWallAngle and hitWallBearing fields values are automatically updated.

See Also:
hitWallAngle, hitWallBearing

onScannedRobot

public void onScannedRobot()
This event method is called from the game when the radar detects another robot. When this event occurs the scannedDistance, scannedAngle, scannedBearing, and scannedEnergy field values are automatically updated.

See Also:
scannedDistance, scannedAngle, scannedBearing, scannedEnergy

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.

Specified by:
run in interface Runnable

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
See Also:
setColors(int, int, int, int, int)

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
See Also:
setColors(int, int, int)

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
See Also:
heading, robotX, robotY, turnLeft(int), turnRight(int), turnTo(int), turnAheadRight(int, int), turnBackLeft(int, int), turnBackRight(int, int)

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
See Also:
heading, robotX, robotY, turnLeft(int), turnRight(int), turnTo(int), turnAheadLeft(int, int), turnBackLeft(int, int), turnBackRight(int, int)

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
See Also:
heading, robotX, robotY, turnLeft(int), turnRight(int), turnTo(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackRight(int, int)

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
See Also:
heading, robotX, robotY, turnLeft(int), turnRight(int), turnTo(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackLeft(int, int)

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
See Also:
gunHeading, gunBearing, turnGunRight(int), turnGunTo(int), bearGunTo(int)

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
See Also:
gunHeading, gunBearing, turnGunLeft(int), turnGunTo(int), bearGunTo(int)

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
See Also:
gunHeading, gunBearing, turnGunLeft(int), turnGunRight(int), bearGunTo(int)

turnLeft

public void turnLeft(int degrees)
Turns this robot left by degrees.

Parameters:
degrees - the amount of degrees to turn to the left
See Also:
heading, turnRight(int), turnTo(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackLeft(int, int), turnBackRight(int, int)

turnRight

public void turnRight(int degrees)
Turns this robot right by degrees.

Parameters:
degrees - the amount of degrees to turn to the right
See Also:
heading, turnLeft(int), turnTo(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackLeft(int, int), turnBackRight(int, int)

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
See Also:
heading, turnLeft(int), turnRight(int), turnAheadLeft(int, int), turnAheadRight(int, int), turnBackLeft(int, int), turnBackRight(int, int)


Copyright © 2013 Robocode. All Rights Reserved.