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)); }
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; }