public static void PrintPreflopRanges(IChanceAbstraction ca) { List <HePocketKind>[] abstrRanges = new List <HePocketKind> [0]; int[] abstrRangesSizes = new int[0]; for (int p = 0; p < (int)HePocketKind.__Count; ++p) { HePocketKind kind = (HePocketKind)p; CardSet pocketCS = HePocket.KindToCardSet(kind); int [] pocketArr = StdDeck.Descriptor.GetIndexesAscending(pocketCS).ToArray(); int abstrCard = ca.GetAbstractCard(pocketArr, pocketArr.Length); if (abstrCard >= abstrRanges.Length) { Array.Resize(ref abstrRanges, abstrCard + 1); Array.Resize(ref abstrRangesSizes, abstrCard + 1); } if (abstrRanges[abstrCard] == null) { abstrRanges[abstrCard] = new List <HePocketKind>(); } abstrRanges[abstrCard].Add(kind); abstrRangesSizes[abstrCard] += HePocket.KindToRange(kind).Length; } Console.WriteLine("Preflop ranges of CA: {0}", ca.Name); int total = 0; for (int i = abstrRanges.Length - 1; i >= 0; --i) { Console.Write("{0,2} ({1,4}):", i, abstrRangesSizes[i]); foreach (HePocketKind k in abstrRanges[i]) { Console.Write(" {0}", HePocket.KindToString(k)); } Console.WriteLine(); total += abstrRangesSizes[i]; } Console.WriteLine("Total: {0}", total); }
public static Result Calculate(HePocketKind p1, HePocketKind p2) { CardSet[] csRange1 = HePocket.KindToRange(p1); CardSet[] csRange2 = HePocket.KindToRange(p2); return(CalculateNoVerify(csRange1, csRange2)); }