public override HandRanking Catagorize(Hand hand) { var seen = new Dictionary <Value, int>(); foreach (Card card in hand.Cards) { if (seen.ContainsKey(card.Value)) { seen[card.Value]++; } else { seen[card.Value] = 1; } } if (seen.Count == 2) { if (seen.ContainsValue(3) && seen.ContainsValue(2)) { return(HandRanking.FullHouse); } } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasNofKind(2, hand)) { return(HandRanking.Pair); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasFlush(hand)) { return(HandRanking.Flush); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasNofKind(3, hand)) { return(HandRanking.ThreeOfAKind); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasFlush(hand) && HasStraight(hand) && hand.HighCard.Value == Value.Ace) { return(HandRanking.RoyalFlush); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasStraight(hand)) { return(HandRanking.Straight); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { if (HasNOfKind(4, hand)) { return(HandRanking.FourOfAKind); } return(Next.Catagorize(hand)); }
public override HandRanking Catagorize(Hand hand) { var seen = new Dictionary <Value, int>(); foreach (Card card in hand.Cards) { if (seen.ContainsKey(card.Value)) { seen[card.Value]++; } else { seen[card.Value] = 1; } } if (seen.Count == 3) { int oneSeen = 0; int twoSeen = 0; foreach (int cardValueNumberOfRepetitions in seen.Values) { switch (cardValueNumberOfRepetitions) { case 1: oneSeen++; break; case 2: twoSeen++; break; default: break; } } if (oneSeen == 1 && twoSeen == 2) { return(HandRanking.TwoPair); } } return(Next.Catagorize(hand)); }