Beispiel #1
0
 private void AddRules()
 {
     //CombinationChecker.AddCombinationRule(Combination.TwoPairs, CombinationRulesProvider.GetTwoPairsRule());
     CombinationChecker.AddCombinationRule(Combination.Flush, CombinationRulesProvider.GetFlushRule());
     CombinationChecker.AddCombinationRule(Combination.None, el => true);
     //CombinationChecker.AddCombinationRule(Combination.Straight, CombinationRulesProvider.GetStraightRule());
     //CombinationChecker.AddCombinationRule(Combination.StraightFlush, CombinationRulesProvider.GetStraightFlushRule());
     CombinationChecker.AddCombinationRule(Combination.FourOfKind, CombinationRulesProvider.GetFourOfKindRule());
     //CombinationChecker.AddCombinationRule(Combination.ThreeOfKind, CombinationRulesProvider.GetThreeOfKindRule());
     CombinationChecker.AddCombinationRule(Combination.TwoOfKind, CombinationRulesProvider.GetTwoOfKindRule());
     //CombinationChecker.AddCombinationRule(Combination.ThreePlusTwoOfKind, CombinationRulesProvider.GetThreePlusTwoOfKindRule());
     CombinationChecker.AddCombinationRule(Combination.RoyalFlush, CombinationRulesProvider.GetRoyalFlushRule());
 }
Beispiel #2
0
        public CoreAssembly(IEnumerable <Card> deck, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards, int handCards, bool debug)
        {
            RankDistribuitonCounter = new RankDistributionCounter();

            CombinationChecker = new CombinationChecker();
            AddRules();

            if (debug)
            {
                BruteForcer = new DebugBruteForcer(RankDistribuitonCounter, CombinationChecker, deck, hand, forbiddenCards, handCards);
            }
            else
            {
                BruteForcer = new AnswerBruteForcer(RankDistribuitonCounter, CombinationChecker, deck, hand, forbiddenCards, handCards);
            }
        }