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(); }
public async Task SetUp() { _roverInvoker = RoverInvoker.Create <RoboticRover>(); await _roverInvoker.CreatePlateauArea("5 5"); await _roverInvoker.SetRoverLocation("1 2 N"); }
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); } }
public void SetUp() { _roverInvoker = RoverInvoker.Create <RoboticRover>(); }
public void RoverInvokerCreate() { RoverInvoker roverInvoker = RoverInvoker.Create <RoboticRover>(); Assert.IsNotNull(roverInvoker); }