Пример #1
0
        public GameState TakeAction(int action)
        {
            int[] newBoard = new int[board.Length];
            Array.Copy(board, newBoard, board.Length);
            newBoard[action] = this.playerTurn;
            GameState   newState    = new GameState(newBoard, -this.playerTurn);
            BoardStatus boardStatus = newState.CheckForEndGame();

            if (boardStatus == BoardStatus.Win || boardStatus == BoardStatus.Draw)
            {
                newState.done = true;
                if (boardStatus == BoardStatus.Win)
                {
                    newState.value = this.playerTurn;
                }
            }
            return(newState);
        }