static void Main(string[] args) { int[] dimensions = Console.ReadLine().Split(" ").Select(x => int.Parse(x)).ToArray(); var upperRight = new Position(dimensions[0], dimensions[1]); Plateau plateau = new Plateau(upperRight); string[] initialPosition = Console.ReadLine().Split(" "); int x = int.Parse(initialPosition[0]); int y = int.Parse(initialPosition[1]); Direction orientation = Enum.Parse <Direction>(initialPosition[2]); Rover rover = new Rover(new Position(x, y), orientation); string commands = Console.ReadLine(); System.Console.WriteLine(rover.Explore(commands)); }
private static void DeployRover(Canvas canvas) { var rover = new Rover(canvas); var roverDropSuccess = false; do { Console.WriteLine(); Console.WriteLine("Enter Rover's drop off point."); try { string dropPosition = Console.ReadLine(); rover.DropAt(dropPosition); roverDropSuccess = true; } catch (MyCustomException ex) { Console.WriteLine(); Console.WriteLine(ex.Message); Console.WriteLine("Please try again to drop your Rover."); } catch (Exception ex) { Console.WriteLine("!! Exception !!"); } }while (!roverDropSuccess); Console.WriteLine(); Console.WriteLine("Enter Rover's path to explore."); var roverExploreSuccess = false; do { try { string explorationPath = Console.ReadLine(); rover.Explore(explorationPath); Console.WriteLine(); Console.WriteLine(string.Format("Rover Position - {0}", rover.Position.ToString())); roverExploreSuccess = true; } catch (OutOfBoundException ex) { Console.WriteLine(); Console.WriteLine("Ooops !! Rover went too far from the Canvas. It is on the ledge"); Console.WriteLine(string.Format("Rover Position - {0}", rover.Position.ToString())); roverExploreSuccess = true; } catch (MyCustomException ex) { Console.WriteLine(ex.Message); Console.WriteLine("Rover couldn't explore. Try again."); } catch (Exception ex) { Console.WriteLine("!! Exception !!"); } }while (!roverExploreSuccess); }