Пример #1
0
        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);
        }
Пример #2
0
 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}");
     }
 }