コード例 #1
0
        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);
        }
コード例 #2
0
 public static Result Calculate(HePocketKind p1, HePocketKind p2)
 {
     CardSet[] csRange1 = HePocket.KindToRange(p1);
     CardSet[] csRange2 = HePocket.KindToRange(p2);
     return(CalculateNoVerify(csRange1, csRange2));
 }