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));
 }
Ejemplo n.º 3
0
 public override HandRanking Catagorize(Hand hand)
 {
     if (HasFlush(hand))
     {
         return(HandRanking.Flush);
     }
     return(Next.Catagorize(hand));
 }
Ejemplo n.º 4
0
        public override HandRanking Catagorize(Hand hand)
        {
            if (HasNofKind(3, hand))
            {
                return(HandRanking.ThreeOfAKind);
            }

            return(Next.Catagorize(hand));
        }
Ejemplo n.º 5
0
        public override HandRanking Catagorize(Hand hand)
        {
            if (HasFlush(hand) && HasStraight(hand) && hand.HighCard.Value == Value.Ace)
            {
                return(HandRanking.RoyalFlush);
            }

            return(Next.Catagorize(hand));
        }
Ejemplo n.º 6
0
        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));
        }