Blackjack.BlackjackGame.CanDoubleDown C# (CSharp) Метод

CanDoubleDown() публичный Метод

public CanDoubleDown ( PlayerHand hand ) : bool
hand PlayerHand
Результат bool
        public bool CanDoubleDown(PlayerHand hand)
        {
            if (hand.Finished)
                return false;

            if (hand.Cards.Count() != 2)
                return false;

            if (hand.HasBeenSplit)
            {
                if (hand.Cards.ElementAt(0).Rank == Ranks.Ace)
                {
                    if (!Settings.DoubleDownSplitAcesAllowed)
                        return false;
                }
                else if (!Settings.DoubleDownNonAceSplitsAllowed)
                    return false;
            }

            var c1 = hand.Cards.ElementAt(0);
            var c2 = hand.Cards.ElementAt(1);

            if(!Settings.SoftDoubleDownAllowed && (c1.Rank == Ranks.Ace || c2.Rank == Ranks.Ace))
                return false;

            int low = c1.LowValue + c2.LowValue;
            if (Settings.DoubleDownOnlyTenOrEleven && (low < 10 || low > 11))
                return false;

            return true;
        }