コード例 #1
0
        public void SetEquitySelectionMode(EquitySelectionMode?equitySelectionMode)
        {
            HandSuitsModelList
            .Where(p => p.IsVisible)
            .ForEach(p => p.SelectionMode = equitySelectionMode ?? DriveHUD.ViewModels.EquitySelectionMode.None);

            EquitySelectionMode = equitySelectionMode;
        }
コード例 #2
0
        public void RefreshCombos()
        {
            var combos = Enum.GetValues(typeof(EquitySelectionMode)).Cast <EquitySelectionMode>().ToDictionary(x => x, x => 0);

            var deadCards = usedCards?.Select(x => x.ToString()).ToArray() ?? new string[0];

            var selectedSuits = HandSuitsModelList.Where(x => x.IsSelected && x.IsVisible)
                                .Select(x => new { x.SelectionMode, HandSuit = x.HandSuit.ToString() })
                                .ToArray();

            var suits = new[] { RangeCardSuit.Clubs, RangeCardSuit.Diamonds, RangeCardSuit.Hearts, RangeCardSuit.Spades };

            bool checkCombos(string cardCombo, string suitCombo, out EquitySelectionMode selectionMode)
            {
                selectionMode = DriveHUD.ViewModels.EquitySelectionMode.None;

                var result = deadCards.Length == 0 || deadCards.All(x => !cardCombo.Contains(x));

                if (!result)
                {
                    return(false);
                }

                var suit = selectedSuits.FirstOrDefault(x => suitCombo.Equals(x.HandSuit, StringComparison.OrdinalIgnoreCase));

                if (suit == null)
                {
                    return(false);
                }

                selectionMode = suit.SelectionMode;

                return(true);
            }

            if (ItemType == RangeSelectorItemType.Pair)
            {
                var rank = FisrtCard.ToRankString();

                for (var i = 0; i < suits.Length; i++)
                {
                    for (var j = i + 1; j < suits.Length; j++)
                    {
                        var suit1 = suits[i].ToSuitString();
                        var suit2 = suits[j].ToSuitString();

                        var cardCombo = $"{rank}{suit1}{rank}{suit2}";
                        var suitCombo = $"{suit1}{suit2}";

                        if (checkCombos(cardCombo, suitCombo, out EquitySelectionMode mode))
                        {
                            combos[mode]++;
                        }
                    }
                }
            }
            else if (ItemType == RangeSelectorItemType.Suited)
            {
                var rank1 = FisrtCard.ToRankString();
                var rank2 = SecondCard.ToRankString();

                for (var i = 0; i < suits.Length; i++)
                {
                    var suit      = suits[i].ToSuitString();
                    var cardCombo = $"{rank1}{suit}{rank2}{suit}";
                    var suitCombo = $"{suit}{suit}";

                    if (checkCombos(cardCombo, suitCombo, out EquitySelectionMode mode))
                    {
                        combos[mode]++;
                    }
                }
            }
            else if (ItemType == RangeSelectorItemType.OffSuited)
            {
                var rank1 = FisrtCard.ToRankString();
                var rank2 = SecondCard.ToRankString();

                for (var i = 0; i < suits.Length; i++)
                {
                    for (var j = 0; j < suits.Length; j++)
                    {
                        if (i == j)
                        {
                            continue;
                        }

                        var suit1 = suits[i].ToSuitString();
                        var suit2 = suits[j].ToSuitString();

                        var cardCombo = $"{rank1}{suit1}{rank2}{suit2}";
                        var suitCombo = $"{suit1}{suit2}";

                        if (checkCombos(cardCombo, suitCombo, out EquitySelectionMode mode))
                        {
                            combos[mode]++;
                        }
                    }
                }
            }

            FoldCheckCombos = combos[DriveHUD.ViewModels.EquitySelectionMode.FoldCheck];
            CallCombos      = combos[DriveHUD.ViewModels.EquitySelectionMode.Call];
            BluffCombos     = combos[DriveHUD.ViewModels.EquitySelectionMode.Bluff];
            ValueBetCombos  = combos[DriveHUD.ViewModels.EquitySelectionMode.ValueBet];

            Combos = combos.Values.Sum();

            RaisePropertyChanged(nameof(Combos));
        }