Esempio n. 1
0
        internal Card PlayCard()
        {
            var context = new PlayingContext(mGame);
            var rootState = new PlayingState(context);

            var validMoves = rootState.GetValidMoves();

            // Exit if only one move is possible.
            if (BitwiseCardHelper.GetGroupCount(validMoves) == 1)
                return GetRandomCard(validMoves);

            bool isCheater = (mGame.Options.DifficultyLevel == GameDifficultyLevel.Cheater);
            var bestNode = TreeSearcher.Search(rootState, 100000, !isCheater);

            return GetRandomCard(bestNode.Move.Group);
        }
Esempio n. 2
0
        internal Card PlayCard()
        {
            var context   = new PlayingContext(mGame);
            var rootState = new PlayingState(context);

            var validMoves = rootState.GetValidMoves();

            // Exit if only one move is possible.
            if (BitwiseCardHelper.GetGroupCount(validMoves) == 1)
            {
                return(GetRandomCard(validMoves));
            }

            bool isCheater = (mGame.Options.DifficultyLevel == GameDifficultyLevel.Cheater);
            var  bestNode  = TreeSearcher.Search(rootState, 100000, !isCheater);

            return(GetRandomCard(bestNode.Move.Group));
        }