Exemple #1
0
        public void OmahaEquityCalcTest(string boardCards, bool isHiLo, float[] equity)
        {
            BoardCards board = BoardCards.FromCards(boardCards);
            var        cards = GetHoleCards().Select(x => CardGroup.Parse(x).Select(c => c.ToString()).ToArray()).ToArray();
            OmahaEquityCalculatorMain calc = new OmahaEquityCalculatorMain(true, isHiLo);

            var result = calc.Equity(board.Select(x => x.ToString()).ToArray(), cards, new string[] { }, 0);

            var i = 0;
        }
Exemple #2
0
        /// <summary>
        /// Calculates Omaha equity for the specified players which last action was at the specified street
        /// </summary>
        /// <param name="players">Player to calculate equity</param>
        /// <param name="street">Street</param>
        /// <param name="boardCards">Board cards</param>
        /// <param name="isHiLo">Determine whenever Omaha is Omaha HiLo</param>
        private void CalculateOmahaEquity(List <EquityPlayer> players, Street street, BoardCards boardCards, bool isHiLo, int potIndex)
        {
            var calc = new OmahaEquityCalculatorMain(true, isHiLo);

            var eq = calc.Equity(boardCards.Select(x => x.ToString()).ToArray(),
                                 players.Select(x => x.HoleCards.Select(c => c.ToString()).ToArray()).ToArray(),
                                 new string[] { }, 0);

            var allInEquity = new Dictionary <string, decimal>();

            for (var i = 0; i < eq.Length; i++)
            {
                var player = players.Count > i ? players[i] : null;

                if (player != null && !allInEquity.ContainsKey(player.Name))
                {
                    var equity = (decimal)eq[i].TotalEq / 100;
                    allInEquity.Add(player.Name, equity);
                }
            }

            players.Where(p => p.LastAction.Street == street && allInEquity.ContainsKey(p.Name))
            .ForEach(p => p.Equity[potIndex] = allInEquity[p.Name]);
        }