示例#1
0
        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));
        }
示例#2
0
        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);
        }