robocode.control
Class RobocodeEngine

java.lang.Object
  extended by robocode.control.RobocodeEngine

public class RobocodeEngine
extends Object

The RobocodeEngine is the old interface provided for external applications in order to let these applications run battles within the Robocode application, and to get the results from these battles.

This class in the main class of the robocode.control package, and the reason for having this control package.

The RobocodeEngine is used by RoboRumble@Home, which is integrated in Robocode, but also RoboLeague and RobocodeJGAP. In addition, the RobocodeEngine is also used by the test units for testing the Robocode application itself.

Author:
Mathew A. Nelson (original), Flemming N. Larsen (contributor), Robert D. Maupin (contributor), Nathaniel Troutman (contributor), Joachim Hofer (contributor)

Constructor Summary
RobocodeEngine(File robocodeHome, RobocodeListener listener)
          Creates a new RobocodeEngine for controlling Robocode.
RobocodeEngine(RobocodeListener listener)
          Creates a new RobocodeEngine for controlling Robocode.
 
Method Summary
 void abortCurrentBattle()
          Aborts the current battle if it is running.
 void close()
          Closes the RobocodeEngine and releases any allocated resources.
protected  void finalize()
          
 RobotSpecification[] getLocalRepository()
          Returns all robots available from the local robot repository of Robocode.
 String getVersion()
          Returns the installed version of Robocode.
 void runBattle(BattleSpecification battleSpecification)
          Runs the specified battle.
 void setVisible(boolean visible)
          Shows or hides the Robocode window.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RobocodeEngine

public RobocodeEngine(File robocodeHome,
                      RobocodeListener listener)
Creates a new RobocodeEngine for controlling Robocode.

Parameters:
robocodeHome - the root directory of Robocode, e.g. C:\Robocode.
listener - the listener that must receive the callbacks from this RobocodeEngine.
See Also:
RobocodeEngine(RobocodeListener), close()

RobocodeEngine

public RobocodeEngine(RobocodeListener listener)
Creates a new RobocodeEngine for controlling Robocode. The JAR file of Robocode is used to determine the root directory of Robocode. See RobocodeEngine(File, RobocodeListener).

Parameters:
listener - the listener that must receive the callbacks from this RobocodeEngine.
See Also:
RobocodeEngine(File, RobocodeListener), close()
Method Detail

finalize

protected void finalize()
                 throws Throwable

Overrides:
finalize in class Object
Throws:
Throwable

close

public void close()
Closes the RobocodeEngine and releases any allocated resources. You should call this when you have finished using the RobocodeEngine. This method automatically disposes the Robocode window if it open.


getVersion

public String getVersion()
Returns the installed version of Robocode.

Returns:
the installed version of Robocode.

setVisible

public void setVisible(boolean visible)
Shows or hides the Robocode window.

Parameters:
visible - true if the Robocode window must be set visible; false otherwise.

getLocalRepository

public RobotSpecification[] getLocalRepository()
Returns all robots available from the local robot repository of Robocode. These robots must exists in the /robocode/robots directory, and must be compiled in advance.

Returns:
an array of all available robots from the local robot repository.
See Also:
RobotSpecification

runBattle

public void runBattle(BattleSpecification battleSpecification)
Runs the specified battle.

Parameters:
battleSpecification - the specification of the battle to play including the participation robots.
See Also:
RobocodeListener.battleComplete(BattleSpecification, RobotResults[]), RobocodeListener.battleMessage(String), BattleSpecification, getLocalRepository()

abortCurrentBattle

public void abortCurrentBattle()
Aborts the current battle if it is running.

See Also:
runBattle(BattleSpecification), RobocodeListener.battleAborted(BattleSpecification)