Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## robocode.control
Class RobocodeEngine

    java.lang.Object
      robocode.control.RobocodeEngine

All Implemented Interfaces:
  IRobocodeEngine

    public class RobocodeEngine

extends Object
implements IRobocodeEngine

The RobocodeEngine is the 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), Pavel Savara (contributor)

Constructor Summary
`RobocodeEngine()` Creates a new RobocodeEngine for controlling Robocode.
`RobocodeEngine(File robocodeHome)` Creates a new RobocodeEngine for controlling Robocode.
`RobocodeEngine(File robocodeHome, RobocodeListener listener)` Deprecated. Since 1.6.2. Use `RobocodeEngine.RobocodeEngine(File)` and `addBattleListener()` instead. Creates a new RobocodeEngine for controlling Robocode.
`RobocodeEngine(IBattleListener listener)`
`RobocodeEngine(RobocodeListener listener)` Deprecated. Since 1.6.2. Use `RobocodeEngine.RobocodeEngine()` and `addBattleListener()` instead. Creates a new RobocodeEngine for controlling Robocode. The JAR file of Robocode is used to determine the root directory of Robocode.

Method Summary
`void` | `abortCurrentBattle()` Aborts the current battle if it is running.
`void` | `addBattleListener(IBattleListener listener)` Adds a battle listener that must receive events occurring in battles.
`void` | `close()` Closes the RobocodeEngine and releases any allocated resources.
`protected void` | `finalize()`
`static File` | `getCurrentWorkingDir()` Returns the current working directory.
`RobotSpecification[]` | `getLocalRepository()` Returns all robots available from the local robot repository of Robocode.
`RobotSpecification[]` | `getLocalRepository(String selectedRobots)` Returns a selection of robots available from the local robot repository of Robocode.
`static File` | `getRobotsDir()` Returns the directory containing the robots.
`String` | `getVersion()` Returns the installed version of Robocode.
`static void` | `printRunningThreads()` Print out all running threads to standard system out.
`void` | `removeBattleListener(IBattleListener listener)` Removes a battle listener that has previously been added to this object.
`void` | `runBattle(BattleSpecification battleSpecification)` Runs the specified battle.
`void` | `runBattle(BattleSpecification battleSpecification, boolean waitTillOver)` Runs the specified battle.
`void` | `runBattle(BattleSpecification battleSpecification, String initialPositions, boolean waitTillOver)` Runs the specified battle.
`void` | `setVisible(boolean visible)` Shows or hides the Robocode window.
`void` | `waitTillBattleOver()` Will block caller until current battle is over

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RobocodeEngine

    public RobocodeEngine()

  Creates a new RobocodeEngine for controlling Robocode. The JAR file of Robocode is used to determine the root directory of Robocode.

  Since:
    1.6.2
  See Also:
    `RobocodeEngine.RobocodeEngine(File)`, `RobocodeEngine.close()`

### RobocodeEngine

    public RobocodeEngine(File robocodeHome)

  Creates a new RobocodeEngine for controlling Robocode.

  Parameters:
    `robocodeHome` - the root directory of Robocode, e.g. C:\Robocode.
  Since:
    1.6.2
  See Also:
    `RobocodeEngine.RobocodeEngine()`, `RobocodeEngine.close()`

### RobocodeEngine

    @Deprecated
    public RobocodeEngine(File robocodeHome,
                                     RobocodeListener listener)

  Deprecated. Since 1.6.2. Use `RobocodeEngine.RobocodeEngine(File)` and `addBattleListener()` instead.

  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.RobocodeEngine()`, `RobocodeEngine.RobocodeEngine(File)`, `RobocodeEngine.close()`

### RobocodeEngine

    @Deprecated
    public RobocodeEngine(RobocodeListener listener)

  Deprecated. Since 1.6.2. Use `RobocodeEngine.RobocodeEngine()` and `addBattleListener()` instead.

  Creates a new RobocodeEngine for controlling Robocode. The JAR file of Robocode is used to determine the root directory of Robocode.

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

### RobocodeEngine

    public RobocodeEngine(IBattleListener listener)

Method Detail

### finalize

    protected void finalize()
                     throws Throwable

  Overrides:
    `finalize` in class `Object`
  Throws:
    `Throwable`

### addBattleListener

    public void addBattleListener(IBattleListener listener)

  Adds a battle listener that must receive events occurring in battles.

  Specified by:
    `addBattleListener` in interface `IRobocodeEngine`
  Parameters:
    `listener` - the battle listener that must retrieve the event from the battles.
  Since:
    1.6.2
  See Also:
    `RobocodeEngine.removeBattleListener(IBattleListener)`

### removeBattleListener

    public void removeBattleListener(IBattleListener listener)

  Removes a battle listener that has previously been added to this object.

  Specified by:
    `removeBattleListener` in interface `IRobocodeEngine`
  Parameters:
    `listener` - the battle listener that must be removed.
  Since:
    1.6.2
  See Also:
    `RobocodeEngine.addBattleListener(IBattleListener)`

### 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.

  Specified by:
    `close` in interface `IRobocodeEngine`

### getVersion

    public String getVersion()

  Returns the installed version of Robocode.

  Specified by:
    `getVersion` in interface `IRobocodeEngine`
  Returns:
    the installed version of Robocode.

### getCurrentWorkingDir

    public static File getCurrentWorkingDir()

  Returns the current working directory.

  Returns:
    a File for the current working directory.
  Since:
    1.7.1

### getRobotsDir

    public static File getRobotsDir()

  Returns the directory containing the robots.

  Returns:
    a File that is the directory containing the robots.
  Since:
    1.7.1

### setVisible

    public void setVisible(boolean visible)

  Shows or hides the Robocode window.

  Specified by:
    `setVisible` in interface `IRobocodeEngine`
  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.

  Specified by:
    `getLocalRepository` in interface `IRobocodeEngine`
  Returns:
    an array of all available robots from the local robot repository.
  See Also:
    `RobotSpecification`, `RobocodeEngine.getLocalRepository(String)`

### getLocalRepository

    public RobotSpecification[] getLocalRepository(String selectedRobots)

  Returns a selection of robots available from the local robot repository of Robocode. These robots must exists in the /robocode/robots directory, and must be compiled in advance. Notice: If a specified robot cannot be found in the repository, it will not be returned in the array of robots returned by this method.

  Specified by:
    `getLocalRepository` in interface `IRobocodeEngine`
  Parameters:
    `selectedRobots` - a comma or space separated list of robots to return. The full class name must be used for specifying the individual robot, e.g. "sample.Corners, sample.Crazy"
  Returns:
    an array containing the available robots from the local robot repository based on the selected robots specified with the `selectedRobotList` parameter.
  Since:
    1.6.2
  See Also:
    `RobotSpecification`, `RobocodeEngine.getLocalRepository()`

### runBattle

    public void runBattle(BattleSpecification battleSpecification)

  Runs the specified battle.

  Specified by:
    `runBattle` in interface `IRobocodeEngine`
  Parameters:
    `battleSpecification` - the specification of the battle to play including the participation robots.
  See Also:
    `RobocodeEngine.runBattle(BattleSpecification, boolean)`, `BattleSpecification`, `RobocodeEngine.getLocalRepository()`

### runBattle

    public void runBattle(BattleSpecification battleSpecification,
                          boolean waitTillOver)

  Runs the specified battle.

  Specified by:
    `runBattle` in interface `IRobocodeEngine`
  Parameters:
    `battleSpecification` - the specification of the battle to run including the participating robots.
    `waitTillOver` - will block caller till end of battle if set
  Since:
    1.6.2
  See Also:
    `RobocodeEngine.runBattle(BattleSpecification)`, `BattleSpecification`, `RobocodeEngine.getLocalRepository()`

### runBattle

    public void runBattle(BattleSpecification battleSpecification,
                          String initialPositions,
                          boolean waitTillOver)

  Runs the specified battle.

  Specified by:
    `runBattle` in interface `IRobocodeEngine`
  Parameters:
    `battleSpecification` - the specification of the battle to run including the participating robots.
    `initialPositions` - a comma or space separated list like: x1,y1,heading1, x2,y2,heading2, which are the coordinates and heading of robot #1 and #2. So e.g. (0,0,180), (50,80,270) means that robot #1 has position (0,0) and heading 180, and robot #2 has position (50,80) and heading 270.
    `waitTillOver` - will block caller till end of battle if set
  Since:
    1.7.1.2
  See Also:
    `RobocodeEngine.runBattle(BattleSpecification)`, `BattleSpecification`, `RobocodeEngine.getLocalRepository()`

### waitTillBattleOver

    public void waitTillBattleOver()

  Will block caller until current battle is over

  Specified by:
    `waitTillBattleOver` in interface `IRobocodeEngine`
  Since:
    1.6.2
  See Also:
    `RobocodeEngine.runBattle(BattleSpecification)`, `RobocodeEngine.runBattle(BattleSpecification, boolean)`

### abortCurrentBattle

    public void abortCurrentBattle()

  Aborts the current battle if it is running.

  Specified by:
    `abortCurrentBattle` in interface `IRobocodeEngine`
  See Also:
    `RobocodeEngine.runBattle(BattleSpecification)`

### printRunningThreads

    public static void printRunningThreads()

  Print out all running threads to standard system out.

  Since:
    1.6.2

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010 Robocode. All Rights Reserved.