Esempio n. 1
0
        public virtual void AddCard(IBlackjackCard card)
        {
            _cards.Add(card);

            if (EligibleForBlackjack)
                CheckForBlackjack();
        }
Esempio n. 2
0
        public bool OfferSplit(IBlackjackCard dealerFaceUpCard)
        {
            var splitOccurred = false;

            // Offer a split to all hands
            foreach (var hand in Hands.ToList())
            {
                splitOccurred = splitOccurred || ConsiderSplitOffer(hand, dealerFaceUpCard);
            }
            return splitOccurred;
        }
Esempio n. 3
0
        public override void AddCard(IBlackjackCard card)
        {
            _cards.Add(card);

            if (CreatedFromSplit) EligibleForBlackjack = false;

            if (EligibleForBlackjack)
                CheckForBlackjack();

            CheckForSplitEligibility();

            CheckForDoubleDownEligibility();
        }
Esempio n. 4
0
        public bool OfferDoubleDown(IPlayerHand playerHand, IBlackjackCard dealerFaceUpCard)
        {
            // Simple Strategy - always accept if eligible
            if (!playerHand.EligibleForDoubleDown)
            {
                return false;
            }

            var originalAmount = playerHand.Bet.Amount;

            Balance -= originalAmount;

            playerHand.Bet = new DoubleDownBet(originalAmount * 2);

            return true;
        }
Esempio n. 5
0
 public bool Hit(IPlayerHand playerHand, IBlackjackCard dealerFaceUpCard)
 {
     // Simplistic strategy
     return playerHand.Value() < 17 && playerHand.Bet is AnteBet;
 }
Esempio n. 6
0
        private bool ConsiderSplitOffer(IPlayerHand playerHand, IBlackjackCard dealerFaceUpCard)
        {
            if (!playerHand.EligibleForSplit)
            {
                return false;
            }

            // Using simple logic for now
            var hand = new PlayerHand();
            Balance -= Ante;
            hand.Bet = new AnteBet(Ante);
            _hands.Add(hand);

            playerHand.SplitInto(hand);

            return true;
        }