package PrintLabyrinth;


public class Robot
{
  
  private int position_row_;
  private int position_col_;
  private Direction start_direction_;
  
  public void Robot()
  {
    position_row_ = -1;
    position_col_ = -1;
    start_direction_ = new Direction();
  }
  
  public int getPosRow()
  {
    return position_row_;
  }
  public int getPosCol()
  {
    return position_col_;
  }
  
  public Direction GetStartDirection()
  {
    return start_direction_;
  }
   
  public void setPos(int row, int col)
  {
    position_row_ = row;
    position_col_ = col;
  }
  
  public void setStartDirection(Direction start_direction)
    throws IllegalDirectionException
  {
    start_direction.getDirection();    // wirft Exception
    start_direction_= start_direction;
  }
 
/**
 * method to move a robot one cell to the given direction.
 * @param direction 
 * @exception IllegalDirectionException thrown if the direction isn't valid.
 */  
  
  public void moveInDirection(Direction direction)
    throws IllegalDirectionException
  {
    switch (direction.getDirection())
    {
      case Direction.DIRECTION_UP:
        position_row_ -= 1;
        break;
      case Direction.DIRECTION_DOWN:
        position_row_ += 1;
        break;
      case Direction.DIRECTION_RIGHT:
        position_col_ += 1;
        break;
      case Direction.DIRECTION_LEFT:
        position_col_ -= 1;
        break;
      default:
        break;
    }
  }
  
}
