Example #1
0
        /// <summary>
        ///  Go through every possible 5 card hand and collect the unique hand values in order
        /// </summary>
        /// <returns></returns>
        internal static int[] highValues()
        {
            if (uniqueHighValues != null)
            {
                return(uniqueHighValues);
            }

            HashSet <int> uniqueValueSet = new HashSet <int>();

            String[] hand       = new String[5];
            int      valueCount = 0;

            for (int n0 = 0; n0 < deckArr.Length; n0++)
            {
                hand[0] = deckArr[n0];
                for (int n1 = n0 + 1; n1 < deckArr.Length; n1++)
                {
                    hand[1] = deckArr[n1];
                    for (int n2 = n1 + 1; n2 < deckArr.Length; n2++)
                    {
                        hand[2] = deckArr[n2];
                        for (int n3 = n2 + 1; n3 < deckArr.Length; n3++)
                        {
                            hand[3] = deckArr[n3];
                            for (int n4 = n3 + 1; n4 < deckArr.Length; n4++)
                            {
                                hand[4] = deckArr[n4];
                                uniqueValueSet.Add(OmahaPoker.Value(hand));
                                valueCount++;
                            }
                        }
                    }
                }
            }

            int[] a = new int[uniqueValueSet.Count];
            int   i = 0;

            foreach (int v in uniqueValueSet)
            {
                a[i++] = v;
            }

            Array.Sort(a);
            uniqueHighValues = a;
            return(a);
        }
Example #2
0
 public override int value(string[] hand)
 {
     return(OmahaPoker.Value(hand));
 }