Esempio n. 1
0
        public Hand GetRandomKindN(int numCardsDealt, int numCardsInFinalHand, int n)
        {
            Contract.Requires(n >= 2 && n <= 5, "Error: size of n-of-a-kind out of range");
            Ranker   ranker = new Ranker(numCardsInFinalHand, false);
            Hand     hand;
            FullRank fRank;

            HandCard[]   hcsRank;
            HandCard[]   hcsFill;
            SimpleRank[] availRanks = new SimpleRank[] {
                SimpleRank.Kind2, SimpleRank.Kind3, SimpleRank.Kind4, SimpleRank.Kind5
            };
            SimpleRank thisRank = availRanks[n - 2];

            do
            {
                TValue value = (TValue)random.Next(2, 14);
                Card[] tuple = GetRandomCardsWithValue(value, n);
                Card[] fill  = GetRandomCards(numCardsDealt - n);
                hand = new Hand(tuple.Concat(fill));
                ranker.GetFullRank(hand, null, out fRank, out hcsRank, out hcsFill);
            } while (fRank.SRank > thisRank);
            return(hand);
        }
Esempio n. 2
0
 public FullRank(SimpleRank sRank, IEnumerable <TValue> values)
 {
     SRank  = sRank;
     Values = values.ToArray();
 }
Esempio n. 3
0
 public FullRank(SimpleRank sRank = SimpleRank.NoRank)
 {
     SRank = sRank;
 }
Esempio n. 4
0
 public static string ToText(this SimpleRank sRank)
 {
     return(toText(sRank));
 }
Esempio n. 5
0
        public Hand GetRandomKindN(int numCardsDealt, int numCardsInFinalHand, int n)
        {
            Contract.Requires(n >= 2 && n <= 5, "Error: size of n-of-a-kind out of range");
            Ranker ranker = new Ranker(numCardsInFinalHand, false);
            Hand hand;
            FullRank fRank;
            HandCard[] hcsRank;
            HandCard[] hcsFill;
            SimpleRank[] availRanks = new SimpleRank[] {
                SimpleRank.Kind2, SimpleRank.Kind3, SimpleRank.Kind4, SimpleRank.Kind5
            };
            SimpleRank thisRank = availRanks[n - 2];

            do
            {
                TValue value = (TValue)random.Next(2, 14);
                Card[] tuple = GetRandomCardsWithValue(value, n);
                Card[] fill = GetRandomCards(numCardsDealt - n);
                hand = new Hand(tuple.Concat(fill));
                ranker.GetFullRank(hand, null, out fRank, out hcsRank, out hcsFill);
            } while (fRank.SRank > thisRank);
            return hand;
        }