/// <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); }
public override int value(string[] hand) { return(OmahaPoker.Value(hand)); }