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); }
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)); }