Package robocode

Class JuniorRobot

  • All Implemented Interfaces:
    java.lang.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, RateControlRobot, Droid, BorderSentry
    • Field Summary

      Fields 
      Modifier and Type Field Description
      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)
    • Constructor Summary

      Constructors 
      Constructor Description
      JuniorRobot()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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!
      java.lang.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 java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 java.lang.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()
      • 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 java.lang.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)