Beispiel #1
0
 public void MoveRobot(char[] instructions)
 {
     foreach (char arrow in instructions)
     {
         // first check for a turn
         var turn = _inputReader.ReadDirection(arrow);
         Direction += turn;
         Direction  = Convert.ToInt32(Mod(Convert.ToDouble(Direction), 4));
         // If no turn move forward
         if (turn == 0)
         {
             if (Direction == 0)  // N
             {
                 Y += 1;
             }
             if (Direction == 1)  // E
             {
                 X += 1;
             }
             if (Direction == 2) // S
             {
                 Y -= 1;
             }
             if (Direction == 3)  // W
             {
                 X -= 1;
             }
         }
         // check coordinate are within warehouse domain
         if (X > XMax)
         {
             X = XMax;
         }
         if (X < 0)
         {
             X = 0;
         }
         if (Y > YMax)
         {
             Y = YMax;
         }
         if (Y < 0)
         {
             Y = 0;
         }
     }
 }