Exemple #1
0
        public async Task <(SpaceZ, List <string>)> PrepareSpaceZAsync(bool isFirst = false)
        {
            return(await Task.Run(() =>
            {
                if (isFirst)
                {
                    var gridSize = Console.ReadLine();
                    var gridCor = gridSize.Split(" ");
                }

                var coordinates = Console.ReadLine().Split(" ").ToList();
                var spaceZ = new SpaceZ
                {
                    Direction = coordinates.LastOrDefault(),
                    X = Convert.ToInt32(coordinates.FirstOrDefault()),
                    Y = Convert.ToInt32(coordinates[1])
                };

                var data = Console.ReadLine();
                var commands = data.ToCharArray();
                var commandList = new List <string>();
                foreach (var item in commands)
                {
                    commandList.Add(item.ToString());
                }
                return (spaceZ, commandList);
            }));
        }
Exemple #2
0
 public async Task <SpaceZ> ScanPlateauAsync(SpaceZ space, List <string> commands)
 {
     return(await Task.Run(() =>
     {
         var currentDirection = space.Direction;
         foreach (var command in commands)
         {
             if (command == ControlTypes.Left || command == ControlTypes.Right)
             {
                 space = (SpaceZ)space.Spin(currentDirection, command);
                 currentDirection = space.Direction;
             }
             else
             {
                 space = (SpaceZ)space.Move(currentDirection);
             }
         }
         return space;
     }));
 }