Пример #1
0
        static void Main(string[] args)
        {
            string inputStr = GenerateInput();
            Input  input    = InputManager.GetInput(inputStr);

            IKernel kernal = new StandardKernel();

            kernal.Load(Assembly.GetExecutingAssembly());

            IPlateau plateau = kernal.Get <IPlateau>();

            plateau.SetPoint(new Point(input.X, input.Y));

            foreach (var inputRover in input.InputRovers)
            {
                IRover rover = kernal.Get <Rover>();

                rover.SetRover(plateau, new Point(inputRover.X, inputRover.Y), inputRover.CurrentDirection);
                rover.SetCommandParams(inputRover.Commands);

                RoverInvoker roverInvorker = new RoverInvoker(rover);
                roverInvorker.Execute();

                //Output
                Console.WriteLine(rover.ToString());
            }

            Console.ReadKey();
        }
Пример #2
0
        public async Task SetUp()
        {
            _roverInvoker = RoverInvoker.Create <RoboticRover>();
            await _roverInvoker.CreatePlateauArea("5 5");

            await _roverInvoker.SetRoverLocation("1 2 N");
        }
Пример #3
0
        static async Task Start()
        {
            try
            {
                System.Console.WriteLine("Welcome to plateau on Mars.");

                RoverInvoker roverInvoker = RoverInvoker.Create <RoboticRover>();

                #region CreatePlateauArea

                System.Console.WriteLine("Please enter the plateau area such as 5 5");

                var plateauAreaValue = System.Console.ReadLine();

                await roverInvoker.CreatePlateauArea(plateauAreaValue);

                System.Console.WriteLine("Plateau area is configured succesfully.");

                #endregion CreatePlateauArea

                #region SetLocation

                System.Console.WriteLine("Please enter rover start location such as : 1 2 N");

                var roverLocationValue = System.Console.ReadLine();
                await roverInvoker.SetRoverLocation(roverLocationValue);

                System.Console.WriteLine("Rover start location is configured succesfully.");

                #endregion SetLocation

                #region ExecuteMovement

                System.Console.WriteLine("Please enter movement Instruction such as : LMLMLMLMM");

                var movementValue = System.Console.ReadLine();

                await roverInvoker.ExecuteMovement(movementValue);

                System.Console.WriteLine("Rover moved");

                #endregion ExecuteMovement

                System.Console.WriteLine("Your rover current location");

                RoverLocation roverLocation = await roverInvoker.GetRoverLocation();

                System.Console.WriteLine($"{roverLocation.X} {roverLocation.Y} {(char)roverLocation.Direction}");
            }
            catch (MarsRoverException rex)
            {
                System.Console.WriteLine("Invalid Command. " + rex.Message);
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("MarsRover has unknown error : " + ex.Message);
            }
        }
Пример #4
0
 public void SetUp()
 {
     _roverInvoker = RoverInvoker.Create <RoboticRover>();
 }
Пример #5
0
        public void RoverInvokerCreate()
        {
            RoverInvoker roverInvoker = RoverInvoker.Create <RoboticRover>();

            Assert.IsNotNull(roverInvoker);
        }