### robocode.robotinterfaces

# Interface IBasicRobot

Known Subinterfaces:
  IAdvancedRobot, IInteractiveRobot, IJuniorRobot, IPaintRobot, ITeamRobot

Known Implementing Classes:
  AdvancedRobot, JuniorRobot, Robot, TeamRobot

`public interface IBasicRobot`

A robot interface for creating a basic type of robot like `Robot` that is able to receive common robot events, but not interactive events as with the `Robot` class. A basic robot allows blocking calls only and cannot handle custom events nor writes to the file system like an advanced robot.

Authors:
  Pavel Savara (original)
  Flemming N. Larsen (javadoc)

Since:
  1.6

See Also:
  `Robot`, `IJuniorRobot`, `IInteractiveRobot`, `IAdvancedRobot`, `ITeamRobot`

  ## Method Summary

  `IBasicEvents`

  `getBasicEventListener()`
    This method is called by the game to notify this robot about basic robot event.

  `Runnable`

  `getRobotRunnable()`
    This method is called by the game to invoke the `run()` method of your robot, where the program of your robot is implemented.

  `void`

  `setOut(PrintStream out)`
    Do not call this method!

    This method is called by the game when setting the output stream for your robot.

  `void`

  `setPeer(IBasicRobotPeer peer)`
    Do not call this method! Your robot will simply stop interacting with the game.

## Method Details

### getBasicEventListener

    public IBasicEvents getBasicEventListener()

> This method is called by the game to notify this robot about basic robot event. Hence, this method must be implemented so it returns your `IBasicEvents` listener.
> Returns:
>   listener to basic events or `null` if this robot should not receive the notifications.
> Since:
>   1.6

### getRobotRunnable

    public Runnable getRobotRunnable()

> This method is called by the game to invoke the `run()` method of your robot, where the program of your robot is implemented.
> Returns:
>   a runnable implementation
> Since:
>   1.6
> See Also:
>   `Runnable.run()`

### setOut

    public void setOut(PrintStream out)

> Do not call this method!

> This method is called by the game when setting the output stream for your robot.
> Parameters:
>   `out` - the new output print stream for this robot
> Since:
>   1.6

### setPeer

    public void setPeer(IBasicRobotPeer peer)

> Do not call this method! Your robot will simply stop interacting with the game.

> This method is called by the game. A robot peer is the object that deals with game mechanics and rules, and makes sure your robot abides by them.
> Parameters:
>   `peer` - the robot peer supplied by the game