public bool Check(Card[] cards)
        {
            if (cards.All(c => c.CardRank >= CardRank.Eight) &&
                _pairCombinationChecker.Check(cards) ||

                cards.Any(c => c.CardRank == CardRank.Ace) &&
                (cards.Any(c => c.CardRank > CardRank.Jack) ||
                 cards.Any(c => c.CardRank == CardRank.Ten) &&
                 cards.GroupBy(c => c.CardSuit).Count() == 1) ||

                cards.All(c => c.CardRank >= CardRank.Queen))
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
        public CombinationType GetCombinationType(Card[] cards)
        {
            if (_straightFlushCombinationChecker.Check(cards))
            {
                return(CombinationType.StraightFlush);
            }

            if (_fourOfAKindCombinationChecker.Check(cards))
            {
                return(CombinationType.FourOfAKind);
            }

            if (_fullHouseCombinationCheckerCombinationChecker.Check(cards))
            {
                return(CombinationType.FullHouse);
            }

            if (_flushCombinationChecker.Check(cards))
            {
                return(CombinationType.Flush);
            }

            if (_straightCombinationChecker.Check(cards))
            {
                return(CombinationType.Straight);
            }

            if (_threeOfAKindCombinationChecker.Check(cards))
            {
                return(CombinationType.ThreeOfAKind);
            }

            if (_twoPairCombinationChecker.Check(cards))
            {
                return(CombinationType.TwoPairs);
            }

            if (_pairCombinationChecker.Check(cards))
            {
                return(CombinationType.Pair);
            }

            return(CombinationType.Kiker);
        }
 public bool Check(Card[] cards)
 {
     return(_pairCombinationChecker.Check(cards) && _threeOfAKindCombinationChecker.Check(cards));
 }