Ejemplo n.º 1
0
        /// <inheritdoc/>
        public BoringToeMoveResponse PlayerMove(long gameId, BoringToeMoveRequest request)
        {
            Player responsePlayer = null;

            Player     player = FindPlayerInDatabase(request.PlayerId, ErrorCode.PLAYER_NOT_EXISTS);
            ITicTacToe game   = FindGameInDatabase(gameId, ErrorCode.GAME_NOT_EXISTS);

            try
            {
                responsePlayer = game.PlayerMove(player, new Coordinate(request.XCoord, request.YCoord));
            }
            catch (TicTacToeGameOverException tttgoe)
            {
                return(GenerateGameOverWinnerResponseData(tttgoe.Player, game.GetGrid()));
            }
            catch (PlayerMovementException)
            {
                return(GenerateRepeatUserResponseData(player, game.GetGrid()));
            }
            catch (GameOverException)
            {
                return(GenerateGameOverNoWinnerResponseData(game.GetGrid()));
            }

            return(GenerateOkNextPlayerResponseData(responsePlayer, game.GetGrid()));
        }
 public ActionResult Put(int id, [FromBody] BoringToeMoveRequest request)
 {
     return(Ok(_boringToeService.PlayerMove(id, request)));
 }