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; } } }