/// <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; }
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; }
public DebugBruteForcer(IRankDistribuitonCounter rankDistribuitonCounter, ICombinationChecker checker, IEnumerable <Card> allDeck, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards, int cardsFromDeck) : base(rankDistribuitonCounter, checker, allDeck, hand, forbiddenCards, cardsFromDeck) { }
public DebugBruteForcer(IRankDistribuitonCounter rankDistribuitonCounter, ICombinationChecker checker, IEnumerable <Card> hand, IEnumerable <Card> forbiddenCards) : base(rankDistribuitonCounter, checker, hand, forbiddenCards) { }
/// <summary> /// Set next checker in the que /// </summary> /// <param name="next">Pointer to the next checker</param> public void SetNext(ICombinationChecker next) { _nextChecker = next; }