Пример #1
0
        public void StartGame(MineField mineField, Turtle turtle, string[] commandArgs)
        {
            foreach (var commandArg in commandArgs)
            {
                _ = Enum.TryParse(commandArg, out Command command);

                switch (command)
                {
                case Command.M:
                    turtle.Move();
                    break;

                case Command.L:
                    turtle.Rotate(Command.L);
                    break;

                case Command.R:
                    turtle.Rotate(Command.R);
                    break;

                case Command.I:
                    throw new InvalidCommandException("GameService() Invalid command");
                }

                var coordinate = new Coordinate(turtle.Point.X, turtle.Point.Y);

                Status = mineField.CheckCoordinatesStatus(coordinate);

                if (Status == Status.MineHit)
                {
                    Console.WriteLine($"Turtle hits a Mine at {coordinate}.");
                    return;
                }
                else if (Status == Status.Success)
                {
                    Console.WriteLine($"The turtle reached Exit at {coordinate}.");
                    return;
                }

                mineField.ValidateCoordinates(coordinate);
            }
        }