Пример #1
0
        public IActionResult Index([FromBody] LevelName level)
        {
            if (!LevelRepo.Instance.ContainsLevel(level.Name))
            {
                return(new BadRequestObjectResult("there is no such level"));
            }
            var     gameId = Guid.NewGuid();
            var     game   = GamesRepo.Instance.NewGame(gameId, level.Name);
            GameDto dto    = new GameDto(
                GameDtoBuilder.BuildCells(game).ToArray(),
                true, true,
                game.Width, game.Height,
                gameId,
                false,
                0);

            return(new ObjectResult(dto));
        }
Пример #2
0
        public IActionResult Moves(Guid gameId, [FromBody] UserInputForMovesPost userInput)
        {
            if (!GamesRepo.Instance.ContainsGame(gameId))
            {
                return(new BadRequestObjectResult("game id is bad"));
            }
            var game = GamesRepo.Instance.GetGame(gameId);
            var dir  = InputParser.GetDirection(userInput, game);

            if (dir is Game.Direction direction)
            {
                game.Move(direction);
            }
            var gameDto = new GameDto(GameDtoBuilder.BuildCells(game).ToArray(),
                                      true, true,
                                      game.Width, game.Height,
                                      gameId,
                                      game.IsGameFinished,
                                      game.Moves);

            return(new ObjectResult(gameDto));
        }