Пример #1
0
        public ActionResult GetGameInfo([FromBody] JObject jsonData)
        {
            int              gameID       = int.Parse(jsonData["gameid"].ToString());
            ChessGame        game         = new ChessGame(gameID);
            GameResponseData gameResponse = GameResponseData.CreateFoundResponseData(game);

            return(gameResponse.GetActionResult());
        }
Пример #2
0
        public ActionResult PlayMove([FromBody] JObject jsonData)
        {
            int       gameID       = int.Parse(jsonData["gameid"].ToString());
            string    move         = jsonData["move"].ToString();
            int       newGameState = int.Parse(jsonData["gamestate"].ToString());
            Player    player       = PlayerController.GetLoggedInPlayer(HttpContext);
            ChessGame game         = new ChessGame(gameID);

            game.PlayMove(player.ID, move, newGameState);
            GameResponseData gameResponse = GameResponseData.CreateFoundResponseData(game);

            return(gameResponse.GetActionResult());
        }
Пример #3
0
        public ActionResult WaitForGameState([FromBody] JObject jsonData)
        {
            int    gameID = int.Parse(jsonData["gameid"].ToString());
            Player player = PlayerController.GetLoggedInPlayer(HttpContext);

            ChessGame game = new ChessGame(gameID);

            ChessGame.GameState existingState;
            if (player.ID == game.GetWhitePlayer().ID)
            {
                existingState = ChessGame.GameState.BlackMove;
            }
            else if (player.ID == game.GetBlackPlayer().ID)
            {
                existingState = ChessGame.GameState.WhiteMove;
            }
            else
            {
                ResponseData responseData = new ResponseData(400, "Invalid game for player");
                return(responseData.GetActionResult());
            }
            bool stateChanged = false;

            for (int i = 0; i < SearchTryNumber; ++i)
            {
                if (game.GetGameState() == existingState)
                {
                    System.Threading.Thread.Sleep(SearchSleepTime);
                    game.ReloadGameData();
                }
                else
                {
                    //game.ReloadMoves();
                    stateChanged = true;
                    break;
                }
            }
            game.ReloadMoves();
            GameResponseData gameResponse = GameResponseData.CreateFoundResponseData(game);

            return(gameResponse.GetActionResult());
        }