Exemplo n.º 1
0
        /// <summary>
        /// Sets the Chain of responsibility for the combination checkers
        /// </summary>
        protected virtual void SetupCheckers()
        {
            RoyalStraightFlushChecker royalStraightFlushChecker = new RoyalStraightFlushChecker();
            StraightFlushChecker      straightFlushChecker      = new StraightFlushChecker();
            FourOfKindChecker         fourOfKindChecker         = new FourOfKindChecker();
            FullHouseChecker          fullHouseChecker          = new FullHouseChecker();
            FlushChecker       flushChecker       = new FlushChecker();
            StraightChecker    straightChecker    = new StraightChecker();
            ThreeOfKindChecker threeOfKindChecker = new ThreeOfKindChecker();
            TwoPairsChecker    twoPairsChecker    = new TwoPairsChecker();
            OnePairChecker     onePairChecker     = new OnePairChecker();
            TopCardChecker     topCardChecker     = new TopCardChecker();

            royalStraightFlushChecker.SetNext(straightFlushChecker);
            straightFlushChecker.SetNext(fourOfKindChecker);
            fourOfKindChecker.SetNext(fullHouseChecker);
            fullHouseChecker.SetNext(flushChecker);
            flushChecker.SetNext(straightChecker);
            straightChecker.SetNext(threeOfKindChecker);
            threeOfKindChecker.SetNext(twoPairsChecker);
            twoPairsChecker.SetNext(onePairChecker);
            onePairChecker.SetNext(topCardChecker);

            _firstChecker = royalStraightFlushChecker;
        }
Exemplo n.º 2
0
 protected BruteForcer(IRankDistribuitonCounter rankDistribuitonCounter, ICombinationChecker checker, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards, int cardsFromDeck = 7)
 {
     _rankDistribuitonCounter = rankDistribuitonCounter;
     _allDeck        = new CardCollection(); _allDeck.FillDefault();
     _myHand         = new CardCollection(hand.OrderBy(el => el.Id));
     _forbiddenCards = new CardCollection(forbiddenCards);
     _allDeck.RemoveCardRange(_myHand);
     _allDeck.RemoveCardRange(_forbiddenCards);
     CardsFromDeck       = cardsFromDeck;
     _combinationChecker = checker;
 }
Exemplo n.º 3
0
 public DebugBruteForcer(IRankDistribuitonCounter rankDistribuitonCounter, ICombinationChecker checker, IEnumerable <Card> allDeck, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards, int cardsFromDeck) : base(rankDistribuitonCounter, checker, allDeck, hand, forbiddenCards, cardsFromDeck)
 {
 }
Exemplo n.º 4
0
 public DebugBruteForcer(IRankDistribuitonCounter rankDistribuitonCounter, ICombinationChecker checker, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards) : base(rankDistribuitonCounter, checker, hand, forbiddenCards)
 {
 }
Exemplo n.º 5
0
 /// <summary>
 /// Set next checker in the que
 /// </summary>
 /// <param name="next">Pointer to the next checker</param>
 public void SetNext(ICombinationChecker next)
 {
     _nextChecker = next;
 }