Package robocode.control

## Interface IRobocodeEngine

All Known Implementing Classes:
  `RobocodeEngine`

    public interface IRobocodeEngine

Interface for the RobocodeEngine.

Author:
  Pavel Savara (original), Flemming N. Larsen (contributor)

### Method Summary

All Methods Instance Methods Abstract Methods
`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 it holds.
`RobotSpecification[]` `getLocalRepository​()` Returns all robots available from the local robot repository of Robocode.
`RobotSpecification[]` `getLocalRepository​(String selectedRobotList)` Returns a selection of robots available from the local robot repository of Robocode.
`String` `getVersion​()` Returns the installed version of Robocode controlled by this RobocodeEngine.
`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.

### Method Detail

#### addBattleListener

    void addBattleListener​(IBattleListener listener)

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

Parameters:
  `listener` - the battle listener that must retrieve the event from the battles.
Since:
  1.6.2
See Also:
  `removeBattleListener(robocode.control.events.IBattleListener)`

#### removeBattleListener

    void removeBattleListener​(IBattleListener listener)

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

Parameters:
  `listener` - the battle listener that must be removed.
Since:
  1.6.2
See Also:
  `addBattleListener(robocode.control.events.IBattleListener)`

#### close

    void close​()

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

#### getVersion

    String getVersion​()

Returns the installed version of Robocode controlled by this RobocodeEngine.

Returns:
  the installed version of Robocode controlled by this RobocodeEngine.

#### setVisible

    void setVisible​(boolean visible)

Shows or hides the Robocode window.

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

#### getLocalRepository

    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, before these robot are returned with this method.

Returns:
  an array of all available robots from the local robot repository.
See Also:
  `RobotSpecification`, `getLocalRepository(String)`

#### getLocalRepository

    RobotSpecification[] getLocalRepository​(String selectedRobotList)

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, before these robot are returned with this method.

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.

Parameters:
  `selectedRobotList` - 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`, `getLocalRepository()`

#### runBattle

    void runBattle​(BattleSpecification battleSpecification)

Runs the specified battle.

Parameters:
  `battleSpecification` - the specification of the battle to run including the participation robots.
See Also:
  `runBattle(robocode.control.BattleSpecification, boolean)`, `BattleSpecification`, `getLocalRepository()`

#### runBattle

    void runBattle​(BattleSpecification battleSpecification,
                   boolean waitTillOver)

Runs the specified battle.

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:
  `runBattle(robocode.control.BattleSpecification)`, `BattleSpecification`, `getLocalRepository()`

#### runBattle

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

Runs the specified battle.

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:
  `runBattle(BattleSpecification)`, `BattleSpecification`, `getLocalRepository()`

#### waitTillBattleOver

    void waitTillBattleOver​()

Will block caller until current battle is over.

Since:
  1.6.2
See Also:
  `runBattle(robocode.control.BattleSpecification)`, `runBattle(robocode.control.BattleSpecification, boolean)`

#### abortCurrentBattle

    void abortCurrentBattle​()

Aborts the current battle if it is running.

See Also:
  `runBattle(robocode.control.BattleSpecification)`