@Override
  protected void initializeRound() {
    super.initializeRound();

    final ITurnSnapshot snapshot = recordManager.readSnapshot(currentTime);

    if (snapshot != null) {
      eventDispatcher.onRoundStarted(new RoundStartedEvent(snapshot, getRoundNum()));
    }
  }
  @Override
  protected void finalizeTurn() {
    final ITurnSnapshot snapshot = recordManager.readSnapshot(currentTime);

    if (snapshot != null) {
      final IRobotSnapshot[] robots = snapshot.getRobots();

      for (int i = 0; i < robots.length; i++) {
        RobotSnapshot robot = (RobotSnapshot) robots[i];

        robot.setPaintEnabled(paint[i]);
      }
      eventDispatcher.onTurnEnded(new TurnEndedEvent(snapshot));
    }

    super.finalizeTurn();
  }