コード例 #1
0
ファイル: Hand.cs プロジェクト: gjamesbaker/BJB
        public virtual void AddCard(IBlackjackCard card)
        {
            _cards.Add(card);

            if (EligibleForBlackjack)
                CheckForBlackjack();
        }
コード例 #2
0
ファイル: BlackjackPlayer.cs プロジェクト: gjamesbaker/BJB
        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;
        }
コード例 #3
0
ファイル: PlayerHand.cs プロジェクト: gjamesbaker/BJB
        public override void AddCard(IBlackjackCard card)
        {
            _cards.Add(card);

            if (CreatedFromSplit) EligibleForBlackjack = false;

            if (EligibleForBlackjack)
                CheckForBlackjack();

            CheckForSplitEligibility();

            CheckForDoubleDownEligibility();
        }
コード例 #4
0
ファイル: BlackjackPlayer.cs プロジェクト: gjamesbaker/BJB
        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;
        }
コード例 #5
0
ファイル: BlackjackPlayer.cs プロジェクト: gjamesbaker/BJB
 public bool Hit(IPlayerHand playerHand, IBlackjackCard dealerFaceUpCard)
 {
     // Simplistic strategy
     return playerHand.Value() < 17 && playerHand.Bet is AnteBet;
 }
コード例 #6
0
ファイル: BlackjackPlayer.cs プロジェクト: gjamesbaker/BJB
        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;
        }