示例#1
0
        static string[] Test(string[] lines)
        {
            List <string> result = new List <string>();

            int.TryParse(lines[0].Split(' ')[0], out bound_X);
            int.TryParse(lines[0].Split(' ')[1], out bound_Y);

            for (int i = 1; i < lines.Length; i += 2)
            {
                int.TryParse(lines[i].Split(' ')[0], out coor_X);
                int.TryParse(lines[i].Split(' ')[1], out coor_Y);
                char.TryParse(lines[i].Split(' ')[2], out or);

                Rover rover = new Rover(bound_X, bound_Y, coor_X, coor_Y, or);

                for (int j = 0; j < lines[i + 1].Length; j++)
                {
                    if (lines[i + 1][j] == 'L' || lines[i + 1][j] == 'R' || lines[i + 1][j] == 'M')
                    {
                        rover.Control(lines[i + 1][j]);
                    }
                    //else
                    //    Console.WriteLine("Wrong command!");
                }

                //if (result.Contains(rover.GetPosition()))
                //    Console.WriteLine("There is another rover at this position!");
                Console.WriteLine(rover.GetPosition());

                result.Add(rover.GetPosition());
            }

            return(result.ToArray());
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Test Input:");
            string grid = Console.ReadLine();

            string[] gridArr = grid.Split(" ");
            int      max_X   = int.Parse(gridArr[0]);
            int      max_Y   = int.Parse(gridArr[1]);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Exptected Output: ");

            for (int k = 1; k <= 2; k++)
            {
                Position p1          = new Position(max_X, max_Y);
                string   position1   = Console.ReadLine();
                string   rotateList1 = Console.ReadLine();

                string[] pos1 = position1.Split(" ");
                p1.CurrentRotation = pos1[2];
                p1.X = int.Parse(pos1[0]);
                p1.Y = int.Parse(pos1[1]);
                Rover r1 = new Rover();
                r1.SetPosition(p1);
                r1.SetRotateList(rotateList1);
                r1.StartAction();
                Position finalPos = r1.GetPosition();
                string   result   = string.Format("{0} {1} {2}", finalPos.X, finalPos.Y, finalPos.CurrentRotation);
                builder.AppendLine(result);
            }
            Console.WriteLine(builder.ToString());
            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            //register our service provider for DI
            RegisterServices();
            _inputValidator = _serviceProvider.GetService <IInputValidator>();
            _inputValidator.ValidateBoundaries("5 5");

            //Show instruction
            PrintInstructions();

            //get validated grid bounds
            var grid = GetGridBoundaries();

            //we know the data is valid so set the grid data
            var gridAry   = grid.Trim().ToUpper().Split(' ');
            int max_east  = int.Parse(gridAry[0]);
            int max_north = int.Parse(gridAry[1]);

            //while (exitLoop.ToUpper() != "EXIT")
            while (true)
            {
                //get validated Landing position and heading
                string landingPosition = GetLandingPosition(max_east, max_north);

                //split the input into by space and assign vars
                var landingAry = landingPosition.Trim().ToUpper().Split(' ');

                int  landing_X = int.Parse(landingAry[0]);
                int  landing_y = int.Parse(landingAry[1]);
                char landing_z = landingAry[2][0]; //converting from string to char here

                //get the Drive Instruction
                string instructions = GetDriveInstructions();

                //init the first rover
                IRover rover = new Rover(landing_X, landing_y, landing_z, max_east, max_north);


                try
                {
                    //try to drive it
                    rover.Drive(instructions.ToUpper());
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine(e.Message);
                }

                Console.WriteLine();
                Console.WriteLine("*** ROVER'S FINAL POSITION ***");
                Console.WriteLine(rover.GetPosition());

                Console.WriteLine();
                Console.WriteLine("INITIALIZING A NEW ROVER");
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Harita Boyutu: 5X5");
            Console.WriteLine("Mevcut Konum: ");
            Console.WriteLine("0 0 N");
            Rover firstRover = new Rover(0, 0, Rover.Direction.N, new Plateau(5, 5));

            Console.WriteLine("Yönlendirme Yapınız.");
            firstRover.Command(Console.ReadLine());
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Yeni Konum: ");
            firstRover.GetPosition();
            Console.ReadLine();
        }
示例#5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Size of Plateau :");
            var plateauSizeCommand = Console.ReadLine();

            var inputCommandPlateauSize = Helper.InputCommandPlateauSize(plateauSizeCommand);

            Plateau.SetPlateau(inputCommandPlateauSize.Width, inputCommandPlateauSize.Height);

            Console.WriteLine("Rover Position :");
            var roverPositionCommand = Console.ReadLine();

            var inputCommandRoverPosition = Helper.InputCommandRoverPosition(roverPositionCommand);
            var rover = new Rover(inputCommandRoverPosition.PositionX, inputCommandRoverPosition.PositionY, inputCommandRoverPosition.Direction);

            Console.WriteLine("Command :");
            var command = Console.ReadLine();

            rover.Drive(command);
            rover.GetPosition();

            Console.ReadLine();
        }