Пример #1
0
        internal static IEnumerable <EquityRangeSelectorItemViewModel> GetHeroRange(HandHistories.Objects.Hand.HandHistory currentHandHistory, HandHistories.Objects.Cards.Street currentStreet)
        {
            if (currentHandHistory.Hero == null)
            {
                return(null);
            }

            if (init)
            {
                TempConfig.Init();
                HandHistory.Init();
                Card.Init();
                init = false;
            }

            var handAnalyzer = new HandAnalyzer();

            var handHistory = new HandHistory();

            handHistory.ConverToEquityCalculatorFormat(currentHandHistory, currentStreet);

            var heroRange = handAnalyzer.BuildPlayerRange(handHistory, currentHandHistory.Hero.PlayerName);

            return(GroupHands(heroRange));
        }
Пример #2
0
        internal static void GetStrongestOpponent(HandHistories.Objects.Hand.HandHistory currentHandHistory, HandHistories.Objects.Cards.Street currentStreet, out string strongestOpponentName, out IEnumerable <EquityRangeSelectorItemViewModel> strongestOpponentHands)
        {
            strongestOpponentName  = null;
            strongestOpponentHands = new List <EquityRangeSelectorItemViewModel>();

            if (init)
            {
                TempConfig.Init();
                HandHistory.Init();
                Card.Init();
                init = false;
            }

            var handAnalyzer = new HandAnalyzer();

            var handHistory = new HandHistory();

            handHistory.ConverToEquityCalculatorFormat(currentHandHistory, currentStreet);

            // analyze preflop ranges
            var hand_range = handAnalyzer.PreflopAnalysis(handHistory);

            var hand_collective = new Hashtable();

            foreach (string key in hand_range.Keys)
            {
                var hand_distribution = new hand_distribution
                {
                    hand_range = (float)Convert.ToDouble(hand_range[key])
                };

                hand_collective.Add(key, hand_distribution);
            }

            if (currentStreet != HandHistories.Objects.Cards.Street.Preflop)
            {
                var street = currentStreet == HandHistories.Objects.Cards.Street.Flop ? 1 :
                             currentStreet == HandHistories.Objects.Cards.Street.Turn ? 2 : 3;

                hand_collective = handAnalyzer.PostflopAnalysis(handHistory, street, hand_collective);
            }

            strongestOpponentHands = GroupHands(handAnalyzer.StrongestOpponentHands);
            strongestOpponentName  = handAnalyzer.StrongestOpponentName;
        }