<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bulldozer</id>
	<title>BZFlagWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bulldozer"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/Bulldozer"/>
	<updated>2026-04-28T18:57:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6655</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6655"/>
		<updated>2009-08-17T21:36:21Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Windows: Shared Library [.dll] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Quick Start: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Quick Start: Running=&lt;br /&gt;
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run &#039;autogen.sh&#039;, &#039;configure&#039;, and &#039;make&#039; and have not run &#039;make install&#039;)&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red sobot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so&lt;br /&gt;
 # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: LUA [.lua]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red dllbot@localhost TestRobot.dll&lt;br /&gt;
&lt;br /&gt;
===Windows: LUA [.lua]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua&lt;br /&gt;
&lt;br /&gt;
=Developing Robots=&lt;br /&gt;
[[BZRobots/API]] - A description the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/API_BZRobots_vs_Robocode]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6654</id>
		<title>BZRobots/API BZRobots vs Robocode</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6654"/>
		<updated>2009-08-17T21:20:31Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Differences between Robocode and BZRobots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to describe the changes that have been made to the RoboCode-compliant part of the API to accommodate how BZFlag works.&lt;br /&gt;
&lt;br /&gt;
= Differences between Robocode and BZRobots =&lt;br /&gt;
&lt;br /&gt;
== Game model ==&lt;br /&gt;
* Robocode game model assumes you have only one life; in BZFlag, you get to respawn&lt;br /&gt;
** onWin/onBattleEnded are applicable to a league match only&lt;br /&gt;
** onDeath simply means you die, but you will spawn shortly after&lt;br /&gt;
** There is a new onSpawn/SpawnEvent in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
== Time-based-movement ==&lt;br /&gt;
* Robocode &#039;turns&#039; are in discrete ticks; BZFlag is real-time, which has the following implications:&lt;br /&gt;
** Time is in decimal seconds; instead of turn 0,1,2, you get 1.5 seconds, 1.8 seconds, 2.34 seconds, etc.&lt;br /&gt;
** Because of the above, getTime() returns a double instead of a long&lt;br /&gt;
** Blocking functions such as execute have a small time delay, dependent on how long you executed&lt;br /&gt;
** For now, there is no limitation on how long you may execute your &amp;quot;turn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Fixed Radar and Gun ==&lt;br /&gt;
* Robocode has movable radar and gun; BZFlag does not&lt;br /&gt;
** setAdjustGunForRobotTurn and similar have no effect&lt;br /&gt;
** turnGunLeft/turnRadarRight/etc. have no effect&lt;br /&gt;
** getGunHeading/getRadarHeading will always match the robot&#039;s getHeading&lt;br /&gt;
** BZFlag&#039;s radar effectively sweeps 360 degrees each &#039;tick/turn&#039;&lt;br /&gt;
&lt;br /&gt;
== 3rd dimension ==&lt;br /&gt;
* Robocode is 2D, but BZFlag is 3D; this means that:&lt;br /&gt;
** Methods named xxxHeight are renamed to xxxLength.&lt;br /&gt;
** Methods named xxxHeight will return a Z-dimension&lt;br /&gt;
** Objects having a getX() and getY() now have a getZ() as well&lt;br /&gt;
** For simplicity, getVelocity() still refers only to X-Y velocity&lt;br /&gt;
&lt;br /&gt;
== Energy ==&lt;br /&gt;
* Robocode bots have &amp;quot;energy&amp;quot;; BZFlag does not&lt;br /&gt;
** The API now has onBulletFired(BulletFiredEvent e) so you can detect a fired shot&lt;br /&gt;
** A bullet&#039;s energy will always be 3, regardless&lt;br /&gt;
** A robot&#039;s getEnergy always returns 16 (Per the [http://robowiki.net/wiki/Robocode/FAQ Robocode Damage Formula] with a bullet power of 3, since a single shot kills)&lt;br /&gt;
** Changing &#039;&#039;power&#039;&#039; in void fire(double power) and similar will have no effect&lt;br /&gt;
&lt;br /&gt;
== Bullets ==&lt;br /&gt;
* In Robocode, bullet speed is a function of energy, but in BZFlag bullet velocity is fixed&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[BZRobots/API]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6653</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6653"/>
		<updated>2009-08-17T19:12:18Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire(double power)&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet(double power)&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 16) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getRobotDeathEvents()&lt;br /&gt;
| Returns a list of all RobotDeathEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getScannedRobotEvents()&lt;br /&gt;
| Returns a list of all ScannedRobotEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getStatusEvents()&lt;br /&gt;
| Returns a list of all StatusEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemainingRadians()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustGunForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForGunTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeftRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRight(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRightRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeftRadians(double radians)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRightRadians(double radians)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeftRadians(double radians)&lt;br /&gt;
| Turns the robot left &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRightRadians(double radians)&lt;br /&gt;
| Turns the robot right &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6652</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6652"/>
		<updated>2009-08-17T19:09:16Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire(double power)&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet(double power)&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 16) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getRobotDeathEvents()&lt;br /&gt;
| Returns a list of all RobotDeathEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getScannedRobotEvents()&lt;br /&gt;
| Returns a list of all ScannedRobotEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getStatusEvents()&lt;br /&gt;
| Returns a list of all StatusEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemainingRadians()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustGunForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForGunTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeftRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRight(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRightRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeftRadians(double radians)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRightRadians(double radians)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeftRadians(double radians)&lt;br /&gt;
| Turns the robot left &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRightRadians(double radians)&lt;br /&gt;
| Turns the robot right &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6651</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6651"/>
		<updated>2009-08-17T19:08:10Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 16) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getRobotDeathEvents()&lt;br /&gt;
| Returns a list of all RobotDeathEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getScannedRobotEvents()&lt;br /&gt;
| Returns a list of all ScannedRobotEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getStatusEvents()&lt;br /&gt;
| Returns a list of all StatusEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemainingRadians()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustGunForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForGunTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeftRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRight(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRightRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeftRadians(double radians)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRightRadians(double radians)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeftRadians(double radians)&lt;br /&gt;
| Turns the robot left &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRightRadians(double radians)&lt;br /&gt;
| Turns the robot right &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6650</id>
		<title>BZRobots/API BZRobots vs Robocode</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6650"/>
		<updated>2009-08-17T19:01:18Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Energy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to describe the changes that have been made to the RoboCode-compliant part of the API to accommodate how BZFlag works.&lt;br /&gt;
&lt;br /&gt;
= Differences between Robocode and BZRobots =&lt;br /&gt;
&lt;br /&gt;
== Game model ==&lt;br /&gt;
* Robocode game model assumes you have only one life; in BZFlag, you get to respawn&lt;br /&gt;
** onWin/onBattleEnded are applicable to a league match only&lt;br /&gt;
** onDeath simply means you die, but you will spawn shortly after&lt;br /&gt;
** There is a new onSpawn/SpawnEvent in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
== Time-based-movement ==&lt;br /&gt;
* Robocode &#039;turns&#039; are in discrete ticks; BZFlag is real-time, which has the following implications:&lt;br /&gt;
** Time is in decimal seconds; instead of turn 0,1,2, you get 1.5 seconds, 1.8 seconds, 2.34 seconds, etc.&lt;br /&gt;
** Because of the above, getTime() returns a double instead of a long&lt;br /&gt;
** Blocking functions such as execute have a small time delay, dependent on how long you executed&lt;br /&gt;
** For now, there is no limitation on how long you may execute your &amp;quot;turn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Fixed Radar and Gun ==&lt;br /&gt;
* Robocode has movable radar and gun; BZFlag does not&lt;br /&gt;
** setAdjustGunForRobotTurn and similar have no effect&lt;br /&gt;
** turnGunLeft/turnRadarRight/etc. have no effect&lt;br /&gt;
** getGunHeading/getRadarHeading will always match the robot&#039;s getHeading&lt;br /&gt;
** BZFlag&#039;s radar effectively sweeps 360 degrees each &#039;tick/turn&#039;&lt;br /&gt;
&lt;br /&gt;
== 3rd dimension ==&lt;br /&gt;
* Robocode is 2D, but BZFlag is 3D; this means that:&lt;br /&gt;
** Methods named xxxHeight are renamed to xxxLength.&lt;br /&gt;
** Methods named xxxHeight will return a Z-dimension&lt;br /&gt;
** Objects having a getX() and getY() now have a getZ() as well&lt;br /&gt;
** For simplicity, getVelocity() still refers only to X-Y velocity&lt;br /&gt;
&lt;br /&gt;
== Energy ==&lt;br /&gt;
* Robocode bots have &amp;quot;energy&amp;quot;; BZFlag does not&lt;br /&gt;
** The API now has onBulletFired(BulletFiredEvent e) so you can detect a fired shot&lt;br /&gt;
** A bullet&#039;s energy will always be 3, regardless&lt;br /&gt;
** A robot&#039;s getEnergy always returns 16 (Per the [http://robowiki.net/wiki/Robocode/FAQ Robocode Damage Formula] with a bullet power of 3, since a single shot kills)&lt;br /&gt;
** Changing &#039;&#039;power&#039;&#039; in void fire(double power) and similar will have no effect&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[BZRobots/API]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6649</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6649"/>
		<updated>2009-08-17T18:57:04Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */  getOthers to 100%&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getRobotDeathEvents()&lt;br /&gt;
| Returns a list of all RobotDeathEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getScannedRobotEvents()&lt;br /&gt;
| Returns a list of all ScannedRobotEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getStatusEvents()&lt;br /&gt;
| Returns a list of all StatusEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemainingRadians()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustGunForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForGunTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeftRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRight(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRightRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeftRadians(double radians)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRightRadians(double radians)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeftRadians(double radians)&lt;br /&gt;
| Turns the robot left &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRightRadians(double radians)&lt;br /&gt;
| Turns the robot right &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6648</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6648"/>
		<updated>2009-08-17T08:35:26Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getRobotDeathEvents()&lt;br /&gt;
| Returns a list of all RobotDeathEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getScannedRobotEvents()&lt;br /&gt;
| Returns a list of all ScannedRobotEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getStatusEvents()&lt;br /&gt;
| Returns a list of all StatusEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemainingRadians()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustGunForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForGunTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| bool isAdjustRadarForRobotTurn&lt;br /&gt;
| For robocode compatibility - always true&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunLeftRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRight(double degrees)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnGunRightRadians(double radians)&lt;br /&gt;
| For robocode compatablity - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeftRadians(double radians)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibility - has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degrees&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRightRadians(double radians)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;radians&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeftRadians(double radians)&lt;br /&gt;
| Turns the robot left &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeftRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRightRadians(double radians)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRightRadians(double radians)&lt;br /&gt;
| Turns the robot right &#039;&#039;radians&#039;&#039; radians&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6647</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6647"/>
		<updated>2009-08-17T08:22:30Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getAllEvents()&lt;br /&gt;
| Returns a list of all events currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitBulletEvents()&lt;br /&gt;
| Returns a list of BulletHitBulletEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletHitEvents()&lt;br /&gt;
| Returns a list of BulletHitEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| list&amp;lt;Event&amp;gt; getBulletMissedEvents()&lt;br /&gt;
| Returns a list of all BulletMissedEvent currently in the queue&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 5% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeadingRadians()&lt;br /&gt;
| Returns the current heading of the robot in radians&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeadingRadians()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemaining()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarTurnRemainingRadians()&lt;br /&gt;
| For robocode compatibly - (Always returns 0)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6646</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6646"/>
		<updated>2009-08-16T10:20:41Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 95% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6645</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6645"/>
		<updated>2009-08-15T18:38:48Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Quick Start: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Quick Start: Running=&lt;br /&gt;
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run &#039;autogen.sh&#039;, &#039;configure&#039;, and &#039;make&#039; and have not run &#039;make install&#039;)&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red sobot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so&lt;br /&gt;
 # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: LUA [.lua]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red dllbot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
===Windows: LUA [.lua]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua&lt;br /&gt;
&lt;br /&gt;
=Developing Robots=&lt;br /&gt;
[[BZRobots/API]] - A description the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/API_BZRobots_vs_Robocode]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6644</id>
		<title>BZRobots/Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6644"/>
		<updated>2009-08-15T18:37:44Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client&lt;br /&gt;
&lt;br /&gt;
= Suggested ideas =&lt;br /&gt;
==API functions==&lt;br /&gt;
* Provide an API for visual targets based on the same rules a player would see.&lt;br /&gt;
** This would only apply to maps using flags&lt;br /&gt;
* Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
* Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot&lt;br /&gt;
** What to do when multiple bots are running in the same client?&lt;br /&gt;
&lt;br /&gt;
= Accepted ideas =&lt;br /&gt;
==Scripting==&lt;br /&gt;
* Be able to load multiple modules.&lt;br /&gt;
** A small amount of work in bzrobots client should make this happen&lt;br /&gt;
&lt;br /&gt;
= Rejected ideas =&lt;br /&gt;
==API functions==&lt;br /&gt;
* Have methods to compute travel paths to desired locations, with updates for moving targets.&lt;br /&gt;
** (Rejected as it defeats the purpose of BZRobots as an AI learning tool)&lt;br /&gt;
* Add a getTank(callsign) function&lt;br /&gt;
** (Rejected due because BZRobots now supports the onScannedPlayer event)&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6643</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6643"/>
		<updated>2009-08-15T18:29:59Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Quick Start: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Quick Start: Running=&lt;br /&gt;
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run &#039;autogen.sh&#039;, &#039;configure&#039;, and &#039;make&#039; and have not run &#039;make install&#039;)&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red sobot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so&lt;br /&gt;
 # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: LUA [.lua]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red dllbot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
===Windows: LUA [.lua]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A description the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/API_BZRobots_vs_Robocode]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6642</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6642"/>
		<updated>2009-08-15T18:28:08Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[BZRobots/API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6641</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6641"/>
		<updated>2009-08-15T18:27:26Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode]] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6640</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6640"/>
		<updated>2009-08-15T18:27:03Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
* [[BZRobots/API_BZRobots_vs_Robocode] - Differences between Robocode and BZRobots&lt;br /&gt;
* [[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6639</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6639"/>
		<updated>2009-08-15T18:26:11Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are new to BZRobots, but have Robocode experience, you may want to take a look at [[API_BZRobots_vs_Robocode]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6638</id>
		<title>BZRobots/API BZRobots vs Robocode</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6638"/>
		<updated>2009-08-15T18:24:23Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to describe the changes that have been made to the RoboCode-compliant part of the API to accommodate how BZFlag works.&lt;br /&gt;
&lt;br /&gt;
= Differences between Robocode and BZRobots =&lt;br /&gt;
&lt;br /&gt;
== Game model ==&lt;br /&gt;
* Robocode game model assumes you have only one life; in BZFlag, you get to respawn&lt;br /&gt;
** onWin/onBattleEnded are applicable to a league match only&lt;br /&gt;
** onDeath simply means you die, but you will spawn shortly after&lt;br /&gt;
** There is a new onSpawn/SpawnEvent in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
== Time-based-movement ==&lt;br /&gt;
* Robocode &#039;turns&#039; are in discrete ticks; BZFlag is real-time, which has the following implications:&lt;br /&gt;
** Time is in decimal seconds; instead of turn 0,1,2, you get 1.5 seconds, 1.8 seconds, 2.34 seconds, etc.&lt;br /&gt;
** Because of the above, getTime() returns a double instead of a long&lt;br /&gt;
** Blocking functions such as execute have a small time delay, dependent on how long you executed&lt;br /&gt;
** For now, there is no limitation on how long you may execute your &amp;quot;turn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Fixed Radar and Gun ==&lt;br /&gt;
* Robocode has movable radar and gun; BZFlag does not&lt;br /&gt;
** setAdjustGunForRobotTurn and similar have no effect&lt;br /&gt;
** turnGunLeft/turnRadarRight/etc. have no effect&lt;br /&gt;
** getGunHeading/getRadarHeading will always match the robot&#039;s getHeading&lt;br /&gt;
** BZFlag&#039;s radar effectively sweeps 360 degrees each &#039;tick/turn&#039;&lt;br /&gt;
&lt;br /&gt;
== 3rd dimension ==&lt;br /&gt;
* Robocode is 2D, but BZFlag is 3D; this means that:&lt;br /&gt;
** Methods named xxxHeight are renamed to xxxLength.&lt;br /&gt;
** Methods named xxxHeight will return a Z-dimension&lt;br /&gt;
** Objects having a getX() and getY() now have a getZ() as well&lt;br /&gt;
** For simplicity, getVelocity() still refers only to X-Y velocity&lt;br /&gt;
&lt;br /&gt;
== Energy ==&lt;br /&gt;
* Robocode bots have &amp;quot;energy&amp;quot;; BZFlag does not&lt;br /&gt;
** The API now has onBulletFired(BulletFiredEvent e) so you can detect a fired shot&lt;br /&gt;
** getEnergy always returns 100 for live bots, and 0 for dead bots&lt;br /&gt;
** A bullet&#039;s energy will always be 17 (to account for the [http://robowiki.net/wiki/Robocode/FAQ Robocode Damage Formula])&lt;br /&gt;
** Changing &#039;&#039;power&#039;&#039; in void fire(double power) and similar will have no effect&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[BZRobots/API]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/RoboCode_Changes&amp;diff=6637</id>
		<title>BZRobots/RoboCode Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/RoboCode_Changes&amp;diff=6637"/>
		<updated>2009-08-15T17:59:26Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: BZRobots/RoboCode Changes moved to BZRobots/API BZRobots vs Robocode: New title makes more sense&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BZRobots/API BZRobots vs Robocode]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6636</id>
		<title>BZRobots/API BZRobots vs Robocode</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API_BZRobots_vs_Robocode&amp;diff=6636"/>
		<updated>2009-08-15T17:59:26Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: BZRobots/RoboCode Changes moved to BZRobots/API BZRobots vs Robocode: New title makes more sense&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to describe the changes that have been made to the RoboCode-compliant part of the API to accomodate how BZFlag works.&lt;br /&gt;
&lt;br /&gt;
= API Changes =&lt;br /&gt;
== Behaviour changes ==&lt;br /&gt;
* &#039;&#039;&#039;execute()&#039;&#039;&#039; - No longer &amp;quot;blocks&amp;quot; until the action is completed - it returns immediately unless you&#039;re currently completing an action. This also goes for other functions, see their relevant protocol messages in [[BZRobots/Protocol]] (&amp;quot;Steady-state required?&amp;quot;). This is because BZFlag is realtime (and RoboCode isn&#039;t).&lt;br /&gt;
&lt;br /&gt;
== Name changes ==&lt;br /&gt;
* &#039;&#039;&#039;getHeight()&#039;&#039;&#039; - Renamed to &#039;&#039;&#039;getLength()&#039;&#039;&#039;. This is because &amp;quot;height&amp;quot; in three dimensions refers to an different axis than what getHeight in two dimensions (and RoboCode) refers to.&lt;br /&gt;
&lt;br /&gt;
== API Additions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;getZ()&#039;&#039;&#039; - Returns the Z position of a tank&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;getLength()&#039;&#039;&#039; - Previously the &amp;quot;height&amp;quot; in the RoboCode API, this returns the length of a tank from the tip of the barrel to the rear of the tank.&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
* [[BZRobots/About]]&lt;br /&gt;
* [[BZRobots/Protocol]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6635</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6635"/>
		<updated>2009-08-15T17:56:55Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6634</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6634"/>
		<updated>2009-08-15T17:55:17Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 25% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 10% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6633</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6633"/>
		<updated>2009-08-15T17:46:38Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6632</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6632"/>
		<updated>2009-08-15T17:43:14Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6631</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6631"/>
		<updated>2009-08-15T17:41:02Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6630</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6630"/>
		<updated>2009-08-15T17:39:34Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* API Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} | ==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 80% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6629</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6629"/>
		<updated>2009-08-15T07:55:44Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless otherwise specified, all units are in map units (distance), degrees (angles), and seconds (time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=API Methods=&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6628</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6628"/>
		<updated>2009-08-15T07:45:35Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;As BZRobots currently supports bot scripts written in three different languages, the following is a C-style, but language independent description of the methods available for bot development.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==Robot/AdvancedRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void clearAllEvents() &lt;br /&gt;
| Clears the event queue; any events will be disgarded &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void execute() &lt;br /&gt;
| Causes any action queued by setAhead, setTurnRight, etc. to take place, ending the &amp;quot;turn&amp;quot; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *fireBullet()&lt;br /&gt;
| Fires a single shot, returning a reference to the fired shot&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getDistanceRemaining()&lt;br /&gt;
| Returns the distance remaining from a setAhead/setBack &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTurnRemaining()&lt;br /&gt;
| Returns the distance remaining from a setTurnLeft/setTurnRight &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getEnergy()&lt;br /&gt;
| For robocode compatibly - robot&#039;s current &amp;quot;energy&amp;quot; (Always 100) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s gun heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getNumRounds()&lt;br /&gt;
| For robocode compatibly - number of battle rounds (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getOthers()&lt;br /&gt;
| Returns the number of other robots/tanks currently in the battle &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| double getRadarHeading()&lt;br /&gt;
| For robocode compatibly - robot&#039;s radar heading (Always matches robot heading)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| int getRoundNum()&lt;br /&gt;
| For robocode compatibly - current battle round (Always &#039;&#039;&#039;1&#039;&#039;&#039;) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustGunForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForGunTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAdjustRadarForRobotTurn(bool independent)&lt;br /&gt;
| For robocode compatibly - but has no effect when false&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setAhead(double distance)&lt;br /&gt;
| Specifies that the robot should move forward by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setBack(double distance)&lt;br /&gt;
| Specifies that the robot should move backwad by &#039;&#039;distance&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setFire(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| Bullet *setFireBullet(double power)&lt;br /&gt;
| Specifies that the robot should fire a bullet of &#039;&#039;power&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | 50% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxTurnRate(double maxTurnRate)&lt;br /&gt;
| Sets a limit on the maximum turn rate of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setMaxVelocity(double maxVelocity)&lt;br /&gt;
| Sets a limit on the maximum speed of the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setResume()&lt;br /&gt;
| Immediately resumes any motion halted by setStop&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void setStop(bool overwrite = false)&lt;br /&gt;
| Immediately stops any motion until resumed by setResume&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnLeft(double degrees)&lt;br /&gt;
| Sets the robot to turn left by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRate(double turnRate)&lt;br /&gt;
| Sets the maximum turn rate for the robot at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void void setTurnRight(double degrees)&lt;br /&gt;
| Sets the robot to turn right by &#039;&#039;degress&#039;&#039; at the next execute()&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnGunLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarRight(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRadarLeft(double degrees)&lt;br /&gt;
| For robocode compatibly - but has no effect&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==Robot/AdvancedRobot Event Handlers== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletFired(BulletFiredEvent e)&lt;br /&gt;
| Called when another robot/tank fires a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHitBullet(BulletHitBulletEvente)&lt;br /&gt;
| For robocode compatibility - will never take place&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitRobot(HitRobotEvente)&lt;br /&gt;
| For robocode compatibility - will never be called&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6627</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6627"/>
		<updated>2009-08-15T07:11:04Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* Robot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* AdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; has passed - whichever comes later. &lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;As BZRobots currently supports bot scripts written in three different languages, the following is a C-style, but language independent description of the methods available for bot development.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==BZRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldLength()&lt;br /&gt;
| Returns the length of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldWidth()&lt;br /&gt;
| Returns the width of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeading()&lt;br /&gt;
| Returns the heading of the gun (Will always be the same as the robot&#039;s heading) &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A (*) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| string getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot (excluding the Z-speed)&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039;  &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robot&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Advanced&amp;lt;br&amp;gt;Robot&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Robocode&amp;lt;br&amp;gt;Compatible&#039;&#039;&#039; &lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;Functional&amp;lt;br&amp;gt;Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | 100% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BBBB00&amp;quot; | Y (*)&lt;br /&gt;
! bgcolor=&amp;quot;#22BB00&amp;quot; | 90% &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB3300&amp;quot; | 20% &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N/A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | 0% &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6626</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6626"/>
		<updated>2009-08-15T06:40:57Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Quick Start: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Quick Start: Running=&lt;br /&gt;
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run &#039;autogen.sh&#039;, &#039;configure&#039;, and &#039;make&#039; and have not run &#039;make install&#039;)&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red sobot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so&lt;br /&gt;
 # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: LUA [.lua]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red dllbot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
===Windows: LUA [.lua]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A description the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6623</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6623"/>
		<updated>2009-08-14T10:25:47Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: fixed links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* BZRobot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* BZAdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
* Robot (Similar to BZRobot - for [http://robocode.sourceforge.net/ robocode] compatibility)&lt;br /&gt;
* AdvancedRobot (Similar to BZAdvancedRobot - for [http://robocode.sourceforge.net/ robocode] compatibility)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; 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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 {{Hl3}} |==BZRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldSize()&lt;br /&gt;
| Returns the size of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| const char * getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 {{Hl3}} |==BZRobot Event Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6622</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6622"/>
		<updated>2009-08-14T10:21:52Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Added Y/N colors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* BZRobot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* BZAdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
* Robot (Similar to BZRobot - for [http://robocode.sourceforge.net/|robocode] compatibility)&lt;br /&gt;
* AdvancedRobot (Similar to BZAdvancedRobot - for [http://robocode.sourceforge.net/|robocode] compatibility)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; 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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 {{Hl3}} |==BZRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldSize()&lt;br /&gt;
| Returns the size of the battle field&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| const char * getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 {{Hl3}} |==BZRobot Event Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot dies&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
! bgcolor=&amp;quot;#555555&amp;quot; | N /A &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#00BB00&amp;quot; | Y &lt;br /&gt;
! bgcolor=&amp;quot;#BB0000&amp;quot; | N &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6621</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6621"/>
		<updated>2009-08-14T10:17:26Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Update with current API reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* BZRobot (An easy-to-use robot with a simplified API, e.g. degree units, etc.)&lt;br /&gt;
* BZAdvancedRobot (A robot with more advanced features in the API, e.g. radian units, etc.)&lt;br /&gt;
* Robot (Similar to BZRobot - for [http://robocode.sourceforge.net/|robocode] compatibility)&lt;br /&gt;
* AdvancedRobot (Similar to BZAdvancedRobot - for [http://robocode.sourceforge.net/|robocode] compatibility)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main control loop is created by overriding the class method &#039;&#039;run&#039;&#039;, and then using the methods shown below to control the robot. These control methods fit into two categories &#039;blocking&#039;, and &#039;non-blocking&#039;. A blocking function, once called, will not return until either the requested action has completed, or the amount of time allotted for a &amp;quot;turn&amp;quot; or &amp;quot;tick&amp;quot; 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 &#039;&#039;execute&#039;&#039; method is called. After a blocking function has been called, various &amp;quot;events&amp;quot; that have been generated during that turn may be processed by the various event methods, if they have been overridden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;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.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=4 {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 {{Hl3}} |==BZRobot Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void ahead(double distance) &lt;br /&gt;
| Moves the robot ahead by &#039;&#039;distance&#039;&#039;&lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void back(double distance) &lt;br /&gt;
| Moves the robot back by &#039;&#039;distance&#039;&#039; &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void doNothing()&lt;br /&gt;
| Does nothing (equivalent of a short sleep) &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void fire()&lt;br /&gt;
| Fires a single shot &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getBattleFieldSize()&lt;br /&gt;
| Returns the size of the battle field&lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getGunCoolingRate()&lt;br /&gt;
| Returns the time it takes to reload a single shot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| double getGunHeat()&lt;br /&gt;
| Returns the time until the gun will be ready to fire&lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getHeading()&lt;br /&gt;
| Returns the current heading of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getHeight()&lt;br /&gt;
| Returns the height (Z-size) of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getLength()&lt;br /&gt;
| Returns the length (Y-size) of the robot&lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| const char * getName()&lt;br /&gt;
| Returns the name (Callsign) of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getTime()&lt;br /&gt;
| Returns the current game time &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getWidth()&lt;br /&gt;
| Returns the width (X-size) of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getVelocity()&lt;br /&gt;
| Returns the speed of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getX()&lt;br /&gt;
| Returns the current X coordinate of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getY()&lt;br /&gt;
| Returns the current Y coordinate of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| double getZ()&lt;br /&gt;
| Returns the current Z coordinate of the robot &lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void resume()&lt;br /&gt;
| Resumes any movements saved by a previous call to &#039;&#039;stop&#039;&#039;&lt;br /&gt;
| N &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void scan()&lt;br /&gt;
| Prompts a radar scan, resulting in onScannedRobot events&lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void stop(bool overwrite = false)&lt;br /&gt;
| Stops the robot, saving any current movements &lt;br /&gt;
| N&lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void turnLeft(double degrees)&lt;br /&gt;
| Turns the robot left &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void turnRight(double degrees)&lt;br /&gt;
| Turns the robot right &#039;&#039;degrees&#039;&#039; degrees&lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 {{Hl3}} |==BZRobot Event Methods== &lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Method&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Description&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Blocking&#039;&#039;&#039; &lt;br /&gt;
! colspan=4 {{Hl3}} |&#039;&#039;&#039;Available In&#039;&#039;&#039; &lt;br /&gt;
! rowspan=2 {{Hl3}} |&#039;&#039;&#039;Functional&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;BZAR&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
| {{Hl3}} |&#039;&#039;&#039;AR&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| void onBattleEnded(BattleEndedEvent e)&lt;br /&gt;
| Called at the end of a league match, or the server shutting down&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void onBulletHit(BulletHitEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot hits another robot&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void onBulletMissed(BulletMissedEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot expires or hits a wall&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void onDeath(DeathEvent e)&lt;br /&gt;
| Called when a bullet fired by the robot dies&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void onHitByBullet(HitByBulletEvent e)&lt;br /&gt;
| Called when the robot is hit by a bullet&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void onHitWall(HitWallEvent e)&lt;br /&gt;
| Called when the robot runs into a wall or object&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void onRobotDeath(RobotDeathEvent e)&lt;br /&gt;
| Called when the robot is killed&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void onScannedRobot(ScannedRobotEvent e)&lt;br /&gt;
| Called each turn as the robot&#039;s radar &amp;quot;sees&amp;quot; another robot&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void onSpawn(SpawnEvent e)&lt;br /&gt;
| Called when the robot spawns&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| Y&lt;br /&gt;
|-&lt;br /&gt;
| void onStatus(StatusEvent e)&lt;br /&gt;
| Called at the beginning of each &amp;quot;turn&amp;quot;, before the main loop is run&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
| void onWin(WinEvent e)&lt;br /&gt;
| Called when the robot (or it&#039;s team) wins a league match&lt;br /&gt;
| N/A &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y &lt;br /&gt;
| Y&lt;br /&gt;
| N&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/History&amp;diff=6620</id>
		<title>BZRobots/History</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/History&amp;diff=6620"/>
		<updated>2009-08-14T09:03:22Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The BZRobots Programmable Computer Player Client was originally developed by Brigham Young University as a project called [http://bzrc.cs.byu.edu/ BZRC]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In 2007 it was further developed by Jørgen Pedersen Tjernø (AKA daxxar) as part of the [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]]. Information about his work can be found on his GSoC blog at http://gsoc.daxxar.com&lt;br /&gt;
&lt;br /&gt;
This work was continued in 2009 by Mathew Eis (AKA Bulldozer and KingRobot), again as part of  [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current BZRobots code can be found in the [[BZFlag_SVN| BZFlag subversion system]] at http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/src/bzrobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6619</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6619"/>
		<updated>2009-08-14T09:02:24Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Quick Start: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Quick Start: Running=&lt;br /&gt;
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run &#039;autogen.sh&#039;, &#039;configure&#039;, and &#039;make&#039; and have not run &#039;make install&#039;)&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red sobot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so&lt;br /&gt;
 # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: LUA [.lua]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red dllbot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
===Windows: LUA [.lua]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A list of the methods in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bots&amp;diff=6602</id>
		<title>Bots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bots&amp;diff=6602"/>
		<updated>2009-08-04T06:46:36Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are four different kinds of &amp;quot;Bots&amp;quot; in BZFlag:&lt;br /&gt;
* AutoPilot&lt;br /&gt;
* SoloBots&lt;br /&gt;
* [[BZRobots]]&lt;br /&gt;
* Server-side Bots&lt;br /&gt;
&lt;br /&gt;
==AutoPilot==&lt;br /&gt;
With a standard key mapping, the &amp;quot;9&amp;quot; key will turn on the AutoPilot. Note that some servers frown upon the use of the autopilot, and others have it disabled entirely.&lt;br /&gt;
&lt;br /&gt;
==SoloBots==&lt;br /&gt;
Solo robots are operated via the -solo command line option. Most popular servers do not allow solo robots on their servers.&lt;br /&gt;
&lt;br /&gt;
==[[BZRobots]]==&lt;br /&gt;
[[BZRobots]] is an artificial intelligence training and development tool that operates under the BZFlag platform&lt;br /&gt;
&lt;br /&gt;
==Server-side Bots==&lt;br /&gt;
This is a new feature in the [BZFlag_3.0] API, allowing bots to run on the server&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots_API&amp;diff=6601</id>
		<title>BZRobots API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots_API&amp;diff=6601"/>
		<updated>2009-08-04T06:42:56Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Redirecting to BZRobots/API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BZRobots/API]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6600</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6600"/>
		<updated>2009-08-04T06:40:39Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Steady State&#039;&#039;&#039;&lt;br /&gt;
The backend has something called a &#039;&#039;steady-state&#039;&#039; - this is basically when the backend is idle, and the tank likewise. Some commands will only work in this steady-state (because they will only make sense when the bot is not doing anything), and if one of these commands are sent when the bot is in &#039;&#039;active-state&#039;&#039; the backend will &#039;&#039;&#039;not reply&#039;&#039;&#039; until the backend has entered &#039;&#039;steady-state&#039;&#039; (and any commands sent after the first command are queued for handling until the &#039;&#039;blocking&#039;&#039; command has been handled). These commands are marked with &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot; in the &amp;quot;Steady-state required?&amp;quot;-column.&lt;br /&gt;
&lt;br /&gt;
==Available Methods==&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Method&lt;br /&gt;
!Description&lt;br /&gt;
!Steady-state required?&lt;br /&gt;
|-&lt;br /&gt;
|Execute&lt;br /&gt;
|Runs a tick of the &#039;planned actions&#039;, and perhaps fires a shot (see SetFire).&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetBattleFieldSize&lt;br /&gt;
|Gives a &#039;BattleFieldSize&#039;-reply with the size of the map in &amp;quot;units&amp;quot;. (the map is size x size, and coordinates run from -size/2 to size/2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetDistanceRemaining&lt;br /&gt;
|Gives a &#039;DistanceRemaining&#039;-reply with how much is left of the currently planned movement.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetGunHeat&lt;br /&gt;
|Gives a &#039;GunHeat&#039;-reply with how many seconds are left of the gun cooldown.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetHeading&lt;br /&gt;
|Gives a &#039;Heading&#039;-reply with heading of the tank.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetHeight&lt;br /&gt;
|Gives a &#039;Height&#039;-reply with height of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetLength&lt;br /&gt;
|Gives a &#039;Length&#039;-reply with height of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTickDuration&lt;br /&gt;
|Gives a &#039;TickDuration&#039;-reply with how many seconds makes up one tick.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTickRemaining&lt;br /&gt;
|Gives a &#039;TickRemaining&#039;-reply with how many seconds are left of this tick.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTurnRemaining&lt;br /&gt;
|Gives a &#039;TurnRemaining&#039;-reply with how much is left of the currently planned turn.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetWidth&lt;br /&gt;
|Gives a &#039;Width&#039;-reply with width of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetX&lt;br /&gt;
|Gives a &#039;X&#039;-reply with x-coordinate of the tank. (0, 0) is &amp;quot;lower left&amp;quot; corner.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetY&lt;br /&gt;
|Gives a &#039;Y&#039;-reply with y-coordinate of the tank. (0, 0) is &amp;quot;lower left&amp;quot; corner.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetZ&lt;br /&gt;
|Gives a &#039;Z&#039;-reply with z-coordinate of the tank. 0 is ground level.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|IdentifyFrontend &amp;lt;version&amp;gt;&lt;br /&gt;
|Greets the backend. (specifying protocol-version &amp;lt;version&amp;gt;, under development: 0001)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetAhead &amp;lt;distance&amp;gt;&lt;br /&gt;
|Sets planned movement (for next &#039;execute&#039;-s) that moves &#039;distance&#039; units.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetFire&lt;br /&gt;
|Sets a planned shot (for next &#039;execute&#039;)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetResume&lt;br /&gt;
|Overwrites and restores the bots current actions (distance and turn) from a previous call to SetStop. This will fail if there are no previous SetStop-calls. Will not restore until you &#039;execute&#039;. (If you call SetAhead, SetTurn etc before this, they will be overwritten unless SetResume fails)&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|SetStop &amp;lt;overwrite&amp;gt;&lt;br /&gt;
|Stores and clears the bots current actions (distance and turn). If you&#039;ve previously called SetStop and not SetResume, this will fail unless you&#039;ve Set overwrite to true. Does not store &amp;amp; clear until you call &#039;execute&#039;. (You can call SetAhead, SetTurn etc after this, and they will become the &#039;new&#039; values, instead of 0.)&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|SetSpeed &amp;lt;factor&amp;gt;&lt;br /&gt;
|Sets next actions speed, value between 0 and 1.0. (for future &#039;execute&#039;-s)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTickDuration &amp;lt;seconds&amp;gt;&lt;br /&gt;
|Sets the duration of a tick, in seconds.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTurnLeft &amp;lt;degrees&amp;gt;&lt;br /&gt;
|Sets planned turn (for next &#039;execute&#039;-s) that turns &#039;degrees&#039; degrees to the left.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTurnRate &amp;lt;factor&amp;gt;&lt;br /&gt;
|Sets next actions turnrate, value between 0 and 1.0. (for next &#039;execute&#039;-s)&lt;br /&gt;
|No&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Upcoming Methods==&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Message syntax&lt;br /&gt;
!Description&lt;br /&gt;
!Steady-state required?&lt;br /&gt;
|-&lt;br /&gt;
|GetConstants&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetFlags&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetMyTanks&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetNumRounds&lt;br /&gt;
|To be defined (or removed?)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetObstacles&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetOtherTanks&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetRoundNum&lt;br /&gt;
|Returns the number of times the bot has died (or?).&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetShots&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetSpeed&lt;br /&gt;
|Returns the current velocity, as per default - or as per last SetSpeed.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTeams&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTime&lt;br /&gt;
|RoboCode: &amp;quot;Returns the game time of the current round, where the time is equal to the current turn in the round.&amp;quot; - Will most likely return number of times you&#039;ve &#039;execute&#039;-d. Alternatively; return elapsed seconds / tickDuration (but tickDuration can change), or elapsed seconds.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetBases&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6599</id>
		<title>BZRobots/API</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/API&amp;diff=6599"/>
		<updated>2009-08-04T06:38:50Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the API for the BZRobots Programmable Computer Player Client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Available Methods&#039;&#039;&#039;&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Method&lt;br /&gt;
!Description&lt;br /&gt;
!Steady-state required?&lt;br /&gt;
|-&lt;br /&gt;
|Execute&lt;br /&gt;
|Runs a tick of the &#039;planned actions&#039;, and perhaps fires a shot (see SetFire).&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetBattleFieldSize&lt;br /&gt;
|Gives a &#039;BattleFieldSize&#039;-reply with the size of the map in &amp;quot;units&amp;quot;. (the map is size x size, and coordinates run from -size/2 to size/2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetDistanceRemaining&lt;br /&gt;
|Gives a &#039;DistanceRemaining&#039;-reply with how much is left of the currently planned movement.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetGunHeat&lt;br /&gt;
|Gives a &#039;GunHeat&#039;-reply with how many seconds are left of the gun cooldown.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetHeading&lt;br /&gt;
|Gives a &#039;Heading&#039;-reply with heading of the tank.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetHeight&lt;br /&gt;
|Gives a &#039;Height&#039;-reply with height of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetLength&lt;br /&gt;
|Gives a &#039;Length&#039;-reply with height of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTickDuration&lt;br /&gt;
|Gives a &#039;TickDuration&#039;-reply with how many seconds makes up one tick.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTickRemaining&lt;br /&gt;
|Gives a &#039;TickRemaining&#039;-reply with how many seconds are left of this tick.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTurnRemaining&lt;br /&gt;
|Gives a &#039;TurnRemaining&#039;-reply with how much is left of the currently planned turn.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetWidth&lt;br /&gt;
|Gives a &#039;Width&#039;-reply with width of the tank.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetX&lt;br /&gt;
|Gives a &#039;X&#039;-reply with x-coordinate of the tank. (0, 0) is &amp;quot;lower left&amp;quot; corner.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetY&lt;br /&gt;
|Gives a &#039;Y&#039;-reply with y-coordinate of the tank. (0, 0) is &amp;quot;lower left&amp;quot; corner.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetZ&lt;br /&gt;
|Gives a &#039;Z&#039;-reply with z-coordinate of the tank. 0 is ground level.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|IdentifyFrontend &amp;lt;version&amp;gt;&lt;br /&gt;
|Greets the backend. (specifying protocol-version &amp;lt;version&amp;gt;, under development: 0001)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetAhead &amp;lt;distance&amp;gt;&lt;br /&gt;
|Sets planned movement (for next &#039;execute&#039;-s) that moves &#039;distance&#039; units.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetFire&lt;br /&gt;
|Sets a planned shot (for next &#039;execute&#039;)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetResume&lt;br /&gt;
|Overwrites and restores the bots current actions (distance and turn) from a previous call to SetStop. This will fail if there are no previous SetStop-calls. Will not restore until you &#039;execute&#039;. (If you call SetAhead, SetTurn etc before this, they will be overwritten unless SetResume fails)&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|SetStop &amp;lt;overwrite&amp;gt;&lt;br /&gt;
|Stores and clears the bots current actions (distance and turn). If you&#039;ve previously called SetStop and not SetResume, this will fail unless you&#039;ve Set overwrite to true. Does not store &amp;amp; clear until you call &#039;execute&#039;. (You can call SetAhead, SetTurn etc after this, and they will become the &#039;new&#039; values, instead of 0.)&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|SetSpeed &amp;lt;factor&amp;gt;&lt;br /&gt;
|Sets next actions speed, value between 0 and 1.0. (for future &#039;execute&#039;-s)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTickDuration &amp;lt;seconds&amp;gt;&lt;br /&gt;
|Sets the duration of a tick, in seconds.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTurnLeft &amp;lt;degrees&amp;gt;&lt;br /&gt;
|Sets planned turn (for next &#039;execute&#039;-s) that turns &#039;degrees&#039; degrees to the left.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|SetTurnRate &amp;lt;factor&amp;gt;&lt;br /&gt;
|Sets next actions turnrate, value between 0 and 1.0. (for next &#039;execute&#039;-s)&lt;br /&gt;
|No&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Frontend To Backend Messages - To Be Implemented&#039;&#039;&#039;&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Message syntax&lt;br /&gt;
!Description&lt;br /&gt;
!Steady-state required?&lt;br /&gt;
|-&lt;br /&gt;
|GetConstants&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetFlags&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetMyTanks&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetNumRounds&lt;br /&gt;
|To be defined (or removed?)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetObstacles&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetOtherTanks&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetRoundNum&lt;br /&gt;
|Returns the number of times the bot has died (or?).&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetShots&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetSpeed&lt;br /&gt;
|Returns the current velocity, as per default - or as per last SetSpeed.&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTeams&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|GetTime&lt;br /&gt;
|RoboCode: &amp;quot;Returns the game time of the current round, where the time is equal to the current turn in the round.&amp;quot; - Will most likely return number of times you&#039;ve &#039;execute&#039;-d. Alternatively; return elapsed seconds / tickDuration (but tickDuration can change), or elapsed seconds.&lt;br /&gt;
|&#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|GetBases&lt;br /&gt;
|&amp;lt;explain&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Ideas for a possible future release&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6598</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6598"/>
		<updated>2009-08-04T06:38:08Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Getting Started: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Pythong bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Getting Started: Running=&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Note: Due to the use of libtool, the TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost ../../bots/python/StalkBot.py&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # ./bzrobots -team red robot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A list of the methods in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - Some of the history behind BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Protocol]] - Description of the internal protocol used in BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/History&amp;diff=6597</id>
		<title>BZRobots/History</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/History&amp;diff=6597"/>
		<updated>2009-08-04T06:37:18Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The BZRobots Programmable Computer Player Client was originally developed by Brigham Young University as a project called [http://bzrc.cs.byu.edu/ BZRC]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In 2008 it was further developed by Jørgen Pedersen Tjernø (AKA daxxar) as part of the [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]]. Information about his work can be found on his GSoC blog at [http://gsoc.daxxar.com]&lt;br /&gt;
&lt;br /&gt;
This work was continued in 2009 by Mathew Eis (AKA Bulldozer and KingRobot), again as part of  [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]].&lt;br /&gt;
&lt;br /&gt;
The current BZRobots code can be found in the [[BZFlag_SVN| BZFlag subversion system]] at [http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/src/bzrobots]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/About&amp;diff=6596</id>
		<title>BZRobots/About</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/About&amp;diff=6596"/>
		<updated>2009-08-04T06:29:33Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Redirecting to BZRobots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BZRobots]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6595</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6595"/>
		<updated>2009-08-04T06:28:16Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* About BZRobots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the [[BZFS]] server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a &amp;quot;headless&amp;quot; client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.&lt;br /&gt;
&lt;br /&gt;
=Getting Started: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Pythong bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Getting Started: Running=&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Note: Due to the use of libtool, the TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost ../../bots/python/StalkBot.py&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # ./bzrobots -team red robot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A list of the methods in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - The old &amp;quot;About&amp;quot; page for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Protocol]] - Description of the internal protocol used in BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6594</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6594"/>
		<updated>2009-08-04T06:22:32Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the bzfs servers. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Getting Started: Building=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Pythong bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Getting Started: Running=&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Note: Due to the use of libtool, the TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost ../../bots/python/StalkBot.py&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # ./bzrobots -team red robot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A list of the methods in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - The old &amp;quot;About&amp;quot; page for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Protocol]] - Description of the internal protocol used in BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6593</id>
		<title>BZRobots</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots&amp;diff=6593"/>
		<updated>2009-08-04T06:18:58Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=About BZRobots=&lt;br /&gt;
BZRobots is a programmable computer player client that is compatible with the bzfs servers. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Note that the following applies to the BZRobots in the upcoming BZFlag 3.0 release)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=How to build=&lt;br /&gt;
===Linux/OS X===&lt;br /&gt;
The BZRobots client will by default as a standard part of the bzflag trunk build. You will need to add an extra option to the ./configure in order to use Python&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Open the bzrobots solution, then build the bzrobots and testbot projects. &lt;br /&gt;
&lt;br /&gt;
=Example of use=&lt;br /&gt;
===Linux/OS X: Shared Library [.so]===&lt;br /&gt;
(Note: Due to the use of libtool, the TestRobot.so is in the .libs directory)&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost .libs/TestRobot.so&lt;br /&gt;
&lt;br /&gt;
===Linux/OS X: Python [.py]===&lt;br /&gt;
 # cd bzflag/src/bzrobots&lt;br /&gt;
 # ./bzrobots -team red robot@localhost ../../bots/python/StalkBot.py&lt;br /&gt;
&lt;br /&gt;
===Windows: Shared Library [.dll]===&lt;br /&gt;
 # cd bzflag&lt;br /&gt;
 # ./bzrobots -team red robot@localhost testbot.dll&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[BZRobots/API]] - A list of the methods in the BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Ideas]] - Community suggestions for and enhancements changes for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/RoboCode_Changes]] - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots API&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/History]] - The old &amp;quot;About&amp;quot; page for BZRobots&lt;br /&gt;
&lt;br /&gt;
[[BZRobots/Protocol]] - Description of the internal protocol used in BZRobots&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/Protocol&amp;diff=6592</id>
		<title>BZRobots/Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/Protocol&amp;diff=6592"/>
		<updated>2009-08-04T06:14:38Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page describes the [[BZRobots]] Enhanced Protocol that forms the internals of the BZFlag Programmable Computer Player Client&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
The [[BZRobots]] client currently consists of two parts called the &amp;quot;backend&amp;quot; and the &amp;quot;frontend&amp;quot;. The &amp;quot;backend&amp;quot; is a lightweight game client that communicates with BZFS. It also runs a lightweight line-by-line text-based server, on which commands can be sent to control a robot. The &amp;quot;frontend&amp;quot; is an instance of a BZAdvancedRobot, including the necessary parts to communicate with the &amp;quot;backend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Available Commands==&lt;br /&gt;
See the [[BZRobots/API]] for the commands currently available to the BZRobots protocol.&lt;br /&gt;
&lt;br /&gt;
==Legacy==&lt;br /&gt;
Eventually, in an effort to simplify the internals of BZRobots, the &amp;quot;frontend&amp;quot; and &amp;quot;backend&amp;quot; will likely be altogether removed, thereby eliminating the internal protocol. It is recommended to develop bots in C or Python using the published API, rather than attempting to develop a seperate client for the BZRobot backend.&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/ShotsAndEnemies&amp;diff=6591</id>
		<title>BZRobots/ShotsAndEnemies</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/ShotsAndEnemies&amp;diff=6591"/>
		<updated>2009-08-04T06:13:27Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Can&amp;#039;t delete, so redirect instead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BZRobots/Ideas]]&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6590</id>
		<title>BZRobots/Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6590"/>
		<updated>2009-08-04T06:10:55Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Undo revision 6589 by Bulldozer (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client&lt;br /&gt;
&lt;br /&gt;
= Implementation ideas =&lt;br /&gt;
* [[BZRobots/ShotsAndEnemies]]&lt;br /&gt;
&lt;br /&gt;
= Suggested ideas =&lt;br /&gt;
==Scripting==&lt;br /&gt;
* Be able to load multiple modules.&lt;br /&gt;
&lt;br /&gt;
==API functions==&lt;br /&gt;
* Provide an API for visual targets based on the same rules a player would see.&lt;br /&gt;
* Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.&lt;br /&gt;
* Have methods to compute travel paths to desired locations, with updates for moving targets.&lt;br /&gt;
* Add a getTank(callsign) function&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
* Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot&lt;br /&gt;
&lt;br /&gt;
= Accepted ideas =&lt;br /&gt;
* Add support for getShots() in BZAdvancedRobot - return a list of shots (class Shot) &lt;br /&gt;
* Add support for a Shot class&lt;br /&gt;
** getPosition(dt) -return position after dt seconds as is assumed&lt;br /&gt;
** getType() - normal? gm? laser? ...&lt;br /&gt;
** getHeading() - which way is the shot heading?&lt;br /&gt;
** getShooter() - who shot it? at least own shots should be distinguished because on no-rico servers we could just throw them away when doing collision forecasts &lt;br /&gt;
** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id&lt;br /&gt;
* Add support for getPlayers() in BZAdvancedRobot - return a list of players (class Tank) &lt;br /&gt;
* Add support for a Tank class&lt;br /&gt;
** getPosition(dt) - return position after dt seconds as is assumed&lt;br /&gt;
** getVelocity() - return current velocity&lt;br /&gt;
** getAngularVelocity() - return current angular velocity, i.e. how fast it is turning&lt;br /&gt;
** getHeading() - which way the bot is heading?&lt;br /&gt;
** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id&lt;br /&gt;
&lt;br /&gt;
= Rejected ideas =&lt;br /&gt;
==API functions==&lt;br /&gt;
* Have methods to compute travel paths to desired locations, with updates for moving targets.&lt;br /&gt;
** (Rejected as it defeats the purpose of BZRobots as an AI learning tool)&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6589</id>
		<title>BZRobots/Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6589"/>
		<updated>2009-08-04T06:09:47Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6588</id>
		<title>BZRobots/Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZRobots/Ideas&amp;diff=6588"/>
		<updated>2009-08-04T06:03:19Z</updated>

		<summary type="html">&lt;p&gt;Bulldozer: /* Accepted ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client&lt;br /&gt;
&lt;br /&gt;
= Implementation ideas =&lt;br /&gt;
* [[BZRobots/ShotsAndEnemies]]&lt;br /&gt;
&lt;br /&gt;
= Suggested ideas =&lt;br /&gt;
==Scripting==&lt;br /&gt;
* Be able to load multiple modules.&lt;br /&gt;
&lt;br /&gt;
==API functions==&lt;br /&gt;
* Provide an API for visual targets based on the same rules a player would see.&lt;br /&gt;
* Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.&lt;br /&gt;
* Have methods to compute travel paths to desired locations, with updates for moving targets.&lt;br /&gt;
* Add a getTank(callsign) function&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
* Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot&lt;br /&gt;
&lt;br /&gt;
= Accepted ideas =&lt;br /&gt;
* Add support for getShots() in BZAdvancedRobot - return a list of shots (class Shot) &lt;br /&gt;
* Add support for a Shot class&lt;br /&gt;
** getPosition(dt) -return position after dt seconds as is assumed&lt;br /&gt;
** getType() - normal? gm? laser? ...&lt;br /&gt;
** getHeading() - which way is the shot heading?&lt;br /&gt;
** getShooter() - who shot it? at least own shots should be distinguished because on no-rico servers we could just throw them away when doing collision forecasts &lt;br /&gt;
** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id&lt;br /&gt;
* Add support for getPlayers() in BZAdvancedRobot - return a list of players (class Tank) &lt;br /&gt;
* Add support for a Tank class&lt;br /&gt;
** getPosition(dt) - return position after dt seconds as is assumed&lt;br /&gt;
** getVelocity() - return current velocity&lt;br /&gt;
** getAngularVelocity() - return current angular velocity, i.e. how fast it is turning&lt;br /&gt;
** getHeading() - which way the bot is heading?&lt;br /&gt;
** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id&lt;br /&gt;
&lt;br /&gt;
= Rejected ideas =&lt;br /&gt;
==API functions==&lt;br /&gt;
* Have methods to compute travel paths to desired locations, with updates for moving targets.&lt;br /&gt;
** (Rejected as it defeats the purpose of BZRobots as an AI learning tool)&lt;/div&gt;</summary>
		<author><name>Bulldozer</name></author>
	</entry>
</feed>