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