예제 #1
0
        public GameState getNextState(bool preserve, Card played, bool playRandom)
        {
            GameState newState = new GameState(players, turnIndex, trick, leadSuit, cardsPlayedInTrick);

            if (preserve)
            {
                if (played == null)
                {
                    newState.getNextState(playRandom);
                }
                else
                {
                    newState.getNextState(played);
                }
            }
            return(newState);
        }
예제 #2
0
        private static bool playout(GameState state, int pIndex)
        {
            GameState playState = state.getNextState(true, null, true);
            while (!playState.gameOver())
            {
                playState = playState.getNextState(true, null, true);
            }

            int bestScore = state.getBestScore();
            return bestScore == pIndex;
        }
예제 #3
0
        static void Main(string[] args)
        {
            GameState state = new GameState();

            for (int i = 0; i < 52; i++)
            {
                state = state.getNextState(true, null, false);
            }

            state.printScores();
            Console.ReadLine();
        }
예제 #4
0
        static void Main(string[] args)
        {
            GameState state = new GameState();

            for (int i = 0; i < 52; i++)
            {
                state = state.getNextState(true, null, false);
            }

            state.printScores();
            Console.ReadLine();
        }
예제 #5
0
        private static bool playout(GameState state, int pIndex)
        {
            GameState playState = state.getNextState(true, null, true);

            while (!playState.gameOver())
            {
                playState = playState.getNextState(true, null, true);
            }

            int bestScore = state.getBestScore();

            return(bestScore == pIndex);
        }
예제 #6
0
        private static int getPlayouts(GameState state, Card card, int pIndex)
        {
            int wins = 0;

            if (state.gameOver()) return 0;
            GameState playState = state.getNextState(true, card, true);
            for (int i = 0; i < NUM_PLAYOUTS; i++)
            {
                if (playout(playState, pIndex))
                    wins++;
            }
            return wins;
        }
예제 #7
0
        private static int getPlayouts(GameState state, Card card, int pIndex)
        {
            int wins = 0;

            if (state.gameOver())
            {
                return(0);
            }
            GameState playState = state.getNextState(true, card, true);

            for (int i = 0; i < NUM_PLAYOUTS; i++)
            {
                if (playout(playState, pIndex))
                {
                    wins++;
                }
            }
            return(wins);
        }
예제 #8
0
 public GameState getNextState(bool preserve, Card played, bool playRandom)
 {
     GameState newState = new GameState(players, turnIndex, trick, leadSuit, cardsPlayedInTrick);
     if (preserve)
     {
         if (played == null)
         {
             newState.getNextState(playRandom);
         }
         else
         {
             newState.getNextState(played);
         }
     }
     return newState;
 }