This wiki is archived and useful information is being migrated to the main bzflag.org website

Editing BZRobots/API

Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: Archived wiki

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 3: Line 3:
  
  
The [[BZRobots]] API is based heavily on the [http://robocode.sourceforge.net/ robocode] project. It is class-based, meaning that a robot is built by extending from one of the following two classes:
+
The [[BZRobots]] API is based heavily on the [http://robocode.sourceforge.net/ robocode] project. It is class-based, meaning that a robot is built by extending from one of the following four classes:
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)
+
* BZRobot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)
+
* BZAdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)
 +
* Robot (Similar to BZRobot - for [http://robocode.sourceforge.net/ robocode] compatibility)
 +
* AdvancedRobot (Similar to BZAdvancedRobot - for [http://robocode.sourceforge.net/ robocode] compatibility)
  
  
The main control loop is created by overriding the class method ''run'', and then using the methods shown below to control the robot. These control methods fit into two categories 'blocking', and 'non-blocking'. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a "turn" or "tick" has passed - whichever comes later.  
+
The main control loop is created by overriding the class method ''run'', and then using the methods shown below to control the robot. These control methods fit into two categories 'blocking', and 'non-blocking'. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a "turn" or "tick" has passed - whichever comes later. Non-blocking functions will return immediately, allowing for additional processing, but their actions do not take effect immediately; rather, they will take place when the ''execute'' method is called. After a blocking function has been called, various "events" that have been generated during that turn may be processed by the various event methods, if they have been overridden.
  
Non-blocking functions will return immediately, allowing for additional processing, but their actions do not take effect immediately; rather, they will take place when the ''execute'' method is called. After a blocking function has been called, various "events" that have been generated during that turn may be processed by the various event methods, if they have been overridden.
 
  
 
+
'''Note:''' ''As BZRobots currently supports bot scripts written in three different languages, the following is a language independent description of the methods available for bot development.''
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]
+
 
+
 
+
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)
+
 
+
=API Methods=
+
'''Note:''' ''As BZRobots currently supports bot scripts written in three different languages, the following is language independent description of the methods available for bot development. Actual usage will vary depending on the language used''
+
  
 
{| cellpadding=4 {{Prettytable}}
 
{| cellpadding=4 {{Prettytable}}
 
|-
 
|-
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods==  
+
! colspan=8 {{Hl3}} |==BZRobot Methods==  
 +
|-
 +
! rowspan=2 {{Hl3}} |'''Method'''
 +
! rowspan=2 {{Hl3}} |'''Description'''
 +
! rowspan=2 {{Hl3}} |'''Blocking'''
 +
! colspan=4 {{Hl3}} |'''Available In'''
 +
! rowspan=2 {{Hl3}} |'''Functional'''
 
|-
 
|-
| {{Hl3}} |'''Method'''  
+
| {{Hl3}} |'''BZR'''
| {{Hl3}} |'''Description'''  
+
| {{Hl3}} |'''BZAR'''
| {{Hl3}} |'''Blocking'''
+
| {{Hl3}} |'''R'''
| {{Hl3}} |'''Robot'''
+
| {{Hl3}} |'''AR'''  
| {{Hl3}} |'''Advanced<br>Robot'''
+
| {{Hl3}} |'''Robocode<br>Compatible'''
+
| {{Hl3}} |'''Functional<br>Status'''  
+
 
|-
 
|-
 
| void ahead(double distance)  
 
| void ahead(double distance)  
Line 39: Line 36:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
+
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
|-
 
|-
 
| void back(double distance)  
 
| void back(double distance)  
Line 47: Line 45:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void clearAllEvents()
 
| Clears the event queue; any events will be disgarded
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
| void doNothing()  
+
| void doNothing()
| Clears the event queue; any events will be disgarded
+
| Does nothing (equivalent of a short sleep)
! bgcolor="#BB0000" | Y
+
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void execute()
 
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the "turn"
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
| void fire(double power)
+
| void fire()
 
| Fires a single shot  
 
| Fires a single shot  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| Bullet *fireBullet(double power)
 
| Fires a single shot, returning a reference to the fired shot
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#BBBB00" | 50%
 
 
|-
 
|-
| list<Event> getAllEvents()
+
| double getBattleFieldSize()
| Returns a list of all events currently in the queue
+
| Returns the size of the battle field
! bgcolor="#BB0000" | N
+
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 5%
 
|-
 
| double getBattleFieldLength()
 
| Returns the length of the battle field
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getBattleFieldWidth()
 
| Returns the width of the battle field
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| list<Event> getBulletHitBulletEvents()
 
| Returns a list of BulletHitBulletEvent currently in the queue
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BB0000" | 5%
 
|-
 
| list<Event> getBulletHitEvents()
 
| Returns a list of BulletHitEvent currently in the queue
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BB0000" | 5%
 
|-
 
| list<Event> getBulletMissedEvents()
 
| Returns a list of all BulletMissedEvent currently in the queue
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BB0000" | 5%
 
|-
 
| double getDistanceRemaining()
 
| Returns the distance remaining from a setAhead/setBack
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getEnergy()
 
| For robocode compatibly - robot's current "energy" (Always 16)
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
 
|-
 
|-
 
| double getGunCoolingRate()
 
| double getGunCoolingRate()
Line 158: Line 80:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getGunHeading()
 
| For robocode compatibly - robot's gun heading (Always matches robot heading)
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getGunHeadingRadians()
 
| For robocode compatibly - robot's gun heading (Always matches robot heading)
 
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| double getGunHeat()
 
| double getGunHeat()
Line 182: Line 89:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getGunTurnRemaining()
 
| For robocode compatibly - (Always returns 0)
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| double getGunTurnRemainingRadians()
 
| For robocode compatibly - (Always returns 0)
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
+
! bgcolor="#00BB00" | Y  
! bgcolor="#555555" | N/A
+
 
|-
 
|-
 
| double getHeading()
 
| double getHeading()
Line 207: Line 99:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| double getHeadingRadians()
 
| Returns the current heading of the robot in radians
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
+
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
+
 
|-
 
|-
 
| double getHeight()
 
| double getHeight()
Line 222: Line 107:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getLength()
 
| Returns the length (Y-size) of the robot
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
! bgcolor="#00BB00" | 100%
 
|-
 
| string getName()
 
| Returns the name (Callsign) of the robot
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
| int getNumRounds()
+
| double getLength()
| For robocode compatibly - number of battle rounds (Always '''1''')  
+
| Returns the length (Y-size) of the robot
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| int getOthers()
 
| Returns the number of other robots/tanks currently in the battle
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
| double getRadarHeading()
+
| const char * getName()
| For robocode compatibly - robot's radar heading (Always matches robot heading)
+
| Returns the name (Callsign) of the robot  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getRadarHeadingRadians()
 
| For robocode compatibly - robot's radar heading (Always matches robot heading)
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getRadarTurnRemaining()
 
| For robocode compatibly - (Always returns 0)
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| double getRadarTurnRemainingRadians()
 
| For robocode compatibly - (Always returns 0)
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#555555" | N/A
 
 
|-
 
|-
| list<Event> getRobotDeathEvents()
+
| double getTime()
| Returns a list of all RobotDeathEvent currently in the queue
+
| Returns the current game time
! bgcolor="#BB0000" | N
+
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 5%
 
|-
 
| int getRoundNum()
 
| For robocode compatibly - current battle round (Always '''1''')
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
| list<Event> getScannedRobotEvents()
+
| double getWidth()
| Returns a list of all ScannedRobotEvent currently in the queue
+
| Returns the width (X-size) of the robot
! bgcolor="#BB0000" | N
+
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 5%
 
|-
 
| list<Event> getStatusEvents()
 
| Returns a list of all StatusEvent currently in the queue
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 5%
 
|-
 
| double getTime()
 
| Returns the current game time
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getTurnRemaining()
 
| Returns the distance remaining from a setTurnLeft/setTurnRight
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| double getTurnRemainingRadians()
 
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| double getVelocity()
 
| double getVelocity()
| Returns the speed of the robot (excluding the Z-speed)
+
| Returns the speed of the robot  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| double getWidth()
 
| Returns the width (X-size) of the robot
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| double getX()
 
| double getX()
Line 367: Line 162:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
+
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
|-
 
|-
 
| double getY()
 
| double getY()
Line 375: Line 171:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
+
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
|-
 
|-
 
| double getZ()
 
| double getZ()
Line 383: Line 180:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| bool isAdjustGunForRobotTurn
 
| For robocode compatibility - always true
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#555555" | N/A
 
 
|-
 
|-
| bool isAdjustRadarForGunTurn
+
| void resume()
| For robocode compatibility - always true
+
| Resumes any movements saved by a previous call to ''stop''
! bgcolor="#BB0000" | N
+
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#555555" | N/A
 
|-
 
| bool isAdjustRadarForRobotTurn
 
| For robocode compatibility - always true
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#555555" | N/A
 
|-
 
| void resume()
 
| Resumes any movements saved by a previous call to ''stop''
 
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void scan()
 
| void scan()
Line 423: Line 198:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void setAdjustGunForRobotTurn(bool independent)
 
| For robocode compatibly - but has no effect when false
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void setAdjustRadarForGunTurn(bool independent)
 
| For robocode compatibly - but has no effect when false
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void setAdjustRadarForRobotTurn(bool independent)
 
| For robocode compatibly - but has no effect when false
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void setAhead(double distance)
 
| Specifies that the robot should move forward by ''distance'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void setBack(double distance)
 
| Specifies that the robot should move backwad by ''distance'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void setFire(double power)
 
| Specifies that the robot should fire a bullet of ''power'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| Bullet *setFireBullet(double power)
 
| Specifies that the robot should fire a bullet of ''power'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#BBBB00" | 50%
 
|-
 
| void setMaxTurnRate(double maxTurnRate)
 
| Sets a limit on the maximum turn rate of the robot at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void setMaxVelocity(double maxVelocity)
 
| Sets a limit on the maximum speed of the robot at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void setResume()
 
| Immediately resumes any motion halted by setStop
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void setStop(bool overwrite = false)
 
| Immediately stops any motion until resumed by setResume
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void void setTurnGunLeft(double degrees)
 
| For robocode compatablity - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnGunLeftRadians(double radians)
 
| For robocode compatablity - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnGunRight(double degrees)
 
| For robocode compatablity - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnGunRightRadians(double radians)
 
| For robocode compatablity - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnLeft(double degrees)
 
| Sets the robot to turn left by ''degrees'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void void setTurnLeftRadians(double radians)
 
| Sets the robot to turn left by ''radians'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void void setTurnRadarLeft(double degrees)
 
| For robocode compatibility - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnRadarLeftRadians(double radians)
 
| For robocode compatibility - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnRadarRight(double degrees)
 
| For robocode compatibility - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnRadarRightRadians(double radians)
 
| For robocode compatibility - has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void void setTurnRight(double degrees)
 
| Sets the robot to turn right by ''degrees'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void void setTurnRightRadians(double radians)
 
| Sets the robot to turn right by ''radians'' at the next execute()
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void stop(bool overwrite = false)
 
| void stop(bool overwrite = false)
Line 615: Line 207:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void turnGunRight(double degrees)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void turnGunLeft(double degrees)
 
| For robocode compatibly - but has no effect
 
 
! bgcolor="#BB0000" | N  
 
! bgcolor="#BB0000" | N  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
 
|-
 
|-
 
| void turnLeft(double degrees)
 
| void turnLeft(double degrees)
Line 639: Line 216:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void turnLeftRadians(double radians)
 
| Turns the robot left ''radians'' radians
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
|-
 
| void turnRadarRight(double degrees)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void turnRadarLeft(double degrees)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void turnRadarLeftRadians(double radians)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void turnRadarRight(double degrees)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
|-
 
| void turnRadarRightRadians(double radians)
 
| For robocode compatibly - but has no effect
 
! bgcolor="#BB0000" | N
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y
 
! bgcolor="#555555" | N/A
 
 
|-
 
|-
 
| void turnRight(double degrees)
 
| void turnRight(double degrees)
Line 695: Line 225:
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
|-
 
| void turnRightRadians(double radians)
 
| Turns the robot right ''radians'' radians
 
! bgcolor="#00BB00" | Y
 
! bgcolor="#BB0000" | N
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers==  
+
! colspan=8 {{Hl3}} |==BZRobot Event Methods==  
 
|-
 
|-
| {{Hl3}} |'''Method'''  
+
! rowspan=2 {{Hl3}} |'''Method'''  
| {{Hl3}} |'''Description'''  
+
! rowspan=2 {{Hl3}} |'''Description'''  
| {{Hl3}} |'''Blocking'''
+
! rowspan=2 {{Hl3}} |'''Blocking'''  
| {{Hl3}} |'''Robot'''
+
! colspan=4 {{Hl3}} |'''Available In'''
| {{Hl3}} |'''Advanced<br>Robot'''  
+
! rowspan=2 {{Hl3}} |'''Functional'''  
| {{Hl3}} |'''Robocode<br>Compatible'''  
+
|-
| {{Hl3}} |'''Functional<br>Status'''  
+
| {{Hl3}} |'''BZR'''
 +
| {{Hl3}} |'''BZAR'''
 +
| {{Hl3}} |'''R'''
 +
| {{Hl3}} |'''AR'''  
 
|-
 
|-
 
| void onBattleEnded(BattleEndedEvent e)
 
| void onBattleEnded(BattleEndedEvent e)
 
| Called at the end of a league match, or the server shutting down
 
| Called at the end of a league match, or the server shutting down
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 10%
 
|-
 
| void onBulletFired(BulletFiredEvent e)
 
| Called when another robot/tank fires a bullet
 
! bgcolor="#555555" | N/A
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
+
! bgcolor="#BB0000" | N  
! bgcolor="#555555" | N/A
+
! bgcolor="#BB0000" | 10%
+
 
|-
 
|-
 
| void onBulletHit(BulletHitEvent e)
 
| void onBulletHit(BulletHitEvent e)
 
| Called when a bullet fired by the robot hits another robot
 
| Called when a bullet fired by the robot hits another robot
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | 80%
 
|-
 
| void onBulletHitBullet(BulletHitBulletEvente)
 
| For robocode compatibility - will never take place
 
! bgcolor="#555555" | N/A
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
+
! bgcolor="#BB0000" | N  
! bgcolor="#00BB00" | Y
+
! bgcolor="#555555" | N/A
+
 
|-
 
|-
 
| void onBulletMissed(BulletMissedEvent e)
 
| void onBulletMissed(BulletMissedEvent e)
 
| Called when a bullet fired by the robot expires or hits a wall
 
| Called when a bullet fired by the robot expires or hits a wall
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 10%
+
! bgcolor="#00BB00" | Y
 +
! bgcolor="#BB0000" | N
 
|-
 
|-
 
| void onDeath(DeathEvent e)
 
| void onDeath(DeathEvent e)
| Called when the robot dies
+
| Called when a bullet fired by the robot dies
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void onHitByBullet(HitByBulletEvent e)
 
| void onHitByBullet(HitByBulletEvent e)
 
| Called when the robot is hit by a bullet
 
| Called when the robot is hit by a bullet
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BB0000" | 25%
 
|-
 
| void onHitRobot(HitRobotEvente)
 
| For robocode compatibility - will never be called
 
! bgcolor="#555555" | N/A
 
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
+
! bgcolor="#BB0000" | N  
! bgcolor="#00BB00" | Y
+
! bgcolor="#555555" | N/A
+
 
|-
 
|-
 
| void onHitWall(HitWallEvent e)
 
| void onHitWall(HitWallEvent e)
 
| Called when the robot runs into a wall or object
 
| Called when the robot runs into a wall or object
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#22BB00" | 90%
 
 
|-
 
|-
 
| void onRobotDeath(RobotDeathEvent e)
 
| void onRobotDeath(RobotDeathEvent e)
 
| Called when the robot is killed
 
| Called when the robot is killed
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void onScannedRobot(ScannedRobotEvent e)
 
| void onScannedRobot(ScannedRobotEvent e)
 
| Called each turn as the robot's radar "sees" another robot
 
| Called each turn as the robot's radar "sees" another robot
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void onSpawn(SpawnEvent e)
 
| void onSpawn(SpawnEvent e)
 
| Called when the robot spawns
 
| Called when the robot spawns
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 +
! bgcolor="#00BB00" | Y
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#555555" | N/A
 
! bgcolor="#00BB00" | 100%
 
 
|-
 
|-
 
| void onStatus(StatusEvent e)
 
| void onStatus(StatusEvent e)
 
| Called at the beginning of each "turn", before the main loop is run
 
| Called at the beginning of each "turn", before the main loop is run
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#00BB00" | 95%
+
! bgcolor="#00BB00" | Y
 +
! bgcolor="#BB0000" | N
 
|-
 
|-
 
| void onWin(WinEvent e)
 
| void onWin(WinEvent e)
 
| Called when the robot (or it's team) wins a league match
 
| Called when the robot (or it's team) wins a league match
! bgcolor="#555555" | N/A  
+
! bgcolor="#555555" | N /A  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
 
! bgcolor="#00BB00" | Y  
! bgcolor="#BBBB00" | Y  
+
! bgcolor="#00BB00" | Y
! bgcolor="#BB0000" | 10%
+
! bgcolor="#00BB00" | Y  
 +
! bgcolor="#BB0000" | N
 
|-
 
|-
 
|}
 
|}
Line 831: Line 344:
 
=See Also=
 
=See Also=
  
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots
+
[[BZRobots/Ideas]] - Ideas for a possible future release
* [[BZRobots/Ideas]] - Ideas for a possible future release
+

Please note that all contributions to BZFlagWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BZFlagWiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)

Templates used on this page: