コード例 #1
0
        public DroneModel turnRight(DroneModel drone)
        {
            var currentDirection = drone.GetDirection();

            // Turn right and set updated direction
            switch (currentDirection)
            {
            case CardinalDirections.North:
                drone.SetDirection(CardinalDirections.East);
                break;

            case CardinalDirections.East:
                drone.SetDirection(CardinalDirections.South);
                break;

            case CardinalDirections.South:
                drone.SetDirection(CardinalDirections.West);
                break;

            case CardinalDirections.West:
                drone.SetDirection(CardinalDirections.North);
                break;
            }

            return(drone);
        }
コード例 #2
0
        public DroneModel setDroneStartPosition(DroneModel drone, string input)
        {
            try
            {
                var dronePlacement = input.Split(' ');
                if (dronePlacement.Length > 3 || dronePlacement[2].Any(x => !char.IsLetter(x)))
                {
                    throw new ArgumentException("Input must be in the correct format. For example '1 2 E'");
                }
                else
                {
                    drone.xCord = Int32.Parse(dronePlacement[0]);
                    drone.yCord = Int32.Parse(dronePlacement[1]);

                    switch (dronePlacement[2].ToUpper())
                    {
                    case "N":
                        drone.SetDirection(CardinalDirections.North);
                        break;

                    case "S":
                        drone.SetDirection(CardinalDirections.South);
                        break;

                    case "E":
                        drone.SetDirection(CardinalDirections.East);
                        break;

                    case "W":
                        drone.SetDirection(CardinalDirections.West);
                        break;

                    default:
                        throw new ArgumentException("One of four cardinal directions (NESW) must be entered");
                    }
                    return(drone);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(drone);
            }
        }