示例#1
0
        /// <summary>
        /// Calculate value of holdem/omaha hand (using at least min cards from hand). Board can be 3-5 cards.
        /// </summary>
        /// <param name="Value"></param>
        /// <param name=""></param>
        /// <param name="String"></param>
        /// <param name=""></param>
        /// <param name="String"></param>
        /// <param name=""></param>
        /// <param name="String"></param>
        /// <param name=""></param>
        /// <returns></returns>
        private int heValue(OmahaValue v, String[] board, String[] hole, String[] temp)
        {
            int hv = 0;

            for (int n = min; n <= 2; n++)
            {
                int nh = MathsUtil.binomialCoefficientFast(hole.Length, n);
                int nb = MathsUtil.binomialCoefficientFast(board.Length, 5 - n);
                for (int kh = 0; kh < nh; kh++)
                {
                    MathsUtil.kCombination(n, kh, hole, temp, 0);
                    for (int kb = 0; kb < nb; kb++)
                    {
                        MathsUtil.kCombination(5 - n, kb, board, temp, n);
                        int val = v.value(temp);
                        //System.out.println(Arrays.asList(h5) + " - " + Poker.desc(v));
                        if (val > hv)
                        {
                            hv = val;
                        }
                    }
                }
            }
            return(hv);
        }