public void Test_MoveRover2(string size, string initialPosition, string directionList) { SurfaceHandler _surfaceHandler = new SurfaceHandler(); var surface = _surfaceHandler.CreateSurface(size); DeployRoverHandler deploy = new DeployRoverHandler(); var rover = deploy.DeployRover(initialPosition); Console.WriteLine("Rover Test", rover.Position.Position_X.ToString()); string directiveList = directionList; var directives = DirectiveHandler.DirectiveList(directiveList); foreach (var item in directives) { if (item == Domain.Enums.Directive.RotateRight) { RightDirectiveHandler.TurnRight(rover); } else if (item == Domain.Enums.Directive.MoveForward) { MoveDirectionHandler.Move(rover, surface); } else if (item == Domain.Enums.Directive.RotateLeft) { LeftDirectiveHandler.TurnLeft(rover); } } Assert.Equal(5, rover.Position.Position_X); Assert.Equal(1, rover.Position.Position_Y); Assert.Equal(Direction.E, rover.Position.Direction); }
private static void MoveRover(Dictionary <Domain.Rover, List <Directive> > roverList, Domain.Surface plateau) { foreach (var pair in roverList) { foreach (var item in pair.Value) { if (item == Domain.Enums.Directive.RotateRight) { RightDirectiveHandler.TurnRight(pair.Key); } else if (item == Domain.Enums.Directive.MoveForward) { MoveDirectionHandler.Move(pair.Key, plateau); } else if (item == Domain.Enums.Directive.RotateLeft) { LeftDirectiveHandler.TurnLeft(pair.Key); } System.Console.WriteLine($"RoverInfo X {pair.Key.Position.Position_X} rover Y {pair.Key.Position.Position_Y} orientation {pair.Key.Position.Direction.ToString()}"); } System.Console.WriteLine($"RoverInfo {pair.Key.Position.Direction}"); System.Console.WriteLine($"x Pos {pair.Key.Position.Position_X} y Pos {pair.Key.Position.Position_Y}"); } }