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