Example #1
0
 //public Hand() { }
 public void Clear()
 {
     Cards.Clear();
     BestCards.Clear();
     PlayerCards.Clear();
     HandValue = Hands.Nothing;
     Suit = 0;
 }
        public void Clear()
        {
            HandValue = Hands.Nothing;
            Suit      = Suits.Unknown;

            Cards.Clear();
            BestCards.Clear();
            PlayerCards.Clear();
        }
        public void EvaluateHand()
        {
            if (Cards.Count < 2)
            {
                return;
            }
            BestCards.Clear();
            HighCards.Clear();
            var result = _eval.EvaluateHand(Cards);

            BestCards.AddRange(result.Cards);
            HighCards.AddRange(result.HighCards);

            HandValue = result.HandValue;
            Suit      = result.Suit;
        }
Example #4
0
        public (List <Card> Cards, Hands HandValue, Suits Suit) EvaluateHand(List <Card> cards)
        {
            HandValue = Hands.Nothing;
            Suit      = 0;
            BestCards.Clear();

            if (cards.Count() >= 2)
            {
                #region Sort the cards
                cards.Sort();
                #endregion

                #region Royal Straight Flush &  Straight Flush & Straight
                StraightCards(cards);
                if (HandValue.Equals(Hands.RoyalStraightFlush) || HandValue.Equals(Hands.StraightFlush))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Four of a kind
                IsFourOfAKind(cards);
                if (HandValue.Equals(Hands.FourOfAKind))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Full House
                IsFullHouse(cards);
                if (HandValue.Equals(Hands.FullHouse))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Flush
                FlushCards(cards);
                if (HandValue.Equals(Hands.Flush))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Straight
                if (HandValue.Equals(Hands.Straight))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Three of a Kind
                IsThreeOfAKind(cards);
                if (HandValue.Equals(Hands.ThreeOfAKind))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Two Pair
                IsTwoPair(cards);
                if (HandValue.Equals(Hands.TwoPair))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region Pair
                IsPair(cards);
                if (HandValue.Equals(Hands.Pair))
                {
                    return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
                }
                #endregion

                #region High Card
                HighCard(cards);
                #endregion
            }

            return(Cards : BestCards, HandValue : HandValue, Suit : Suit);
        }