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); }
public FullRank(SimpleRank sRank, IEnumerable <TValue> values) { SRank = sRank; Values = values.ToArray(); }
public FullRank(SimpleRank sRank = SimpleRank.NoRank) { SRank = sRank; }
public static string ToText(this SimpleRank sRank) { return(toText(sRank)); }
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; }