/**
  * The given robot shoots in the direction it is facing.
  *
  * @param robot The robot that has to execute this command.
  * @effect The given robot shoots in the direction it is facing, provided it has the energy to
  *     do so.
  */
 @Override
 public void execute(Robot robot) {
   try {
     if (robot.getEnergy().compareTo(Robot.getEnergyToShoot()) != -1) robot.shoot();
   } catch (NullPointerException exc) {
     System.err.println(exc.getMessage());
   }
 }
 /**
  * Move the robot one step forward.
  *
  * @param robot The robot that has to execute this command.
  * @effect The given robot moves one step forward.
  */
 @Override
 public void execute(Robot robot) {
   try {
     if (robot.getEnergy().compareTo(robot.getEnergyToMove()) != -1) robot.move();
   } catch (NullPointerException exc) {
     System.err.println(exc.getMessage());
   } catch (IllegalStateException exc) {
     System.err.println(exc.getMessage());
   } catch (IllegalArgumentException exc) {
     System.err.println(exc.getMessage());
   }
 }
 /**
  * Lets the given robot pick up and use an item.
  *
  * @param robot The robot that has to execute this command.
  * @effect The given robot picks up and use a random item on its current position, provided
  *     there is an item on the same position.
  */
 @Override
 public void execute(Robot robot)
     throws NullPointerException, IllegalArgumentException, IllegalStateException {
   try {
     Item item = robot.getBoard().getRandomItemOnPosition(robot.getPosition());
     if (item != null) robot.pickUp(item);
     robot.use(item);
   } catch (NullPointerException exc) {
     assert false;
   } catch (IllegalArgumentException exc) {
     System.err.println(exc.getMessage());
   } catch (IllegalStateException exc) {
     assert false;
   } catch (NoSuchElementException exc) {
     System.err.println(exc.getMessage());
   }
 }
 /**
  * The given robot turns in counterclockwise direction
  *
  * @param robot The robot that has to execute this command.
  * @effect The given robot turns in counterclockwise direction, provided it has the energy to do
  *     so.
  */
 @Override
 public void execute(Robot robot) {
   if (robot.getEnergy().compareTo(Robot.getEnergyToTurn()) != -1) robot.turnCounterclockwise();
 }