public bool Split() { if (canSplit) { splitHandEvaluator = new BlackjackCardListEvaluator(new List <PlayingCard>(hand.Pop())); amountBetOnSplitHand = bet; if (PlaceBet(bet, true) > 0) { mainHandEvaluator.isSplit = true; splitHandEvaluator.isSplit = true; controller.DealCard(hand); controller.DealCard(splitHandEvaluator.cards); if (hand[0].value.Equals(PlayingCard.Value.Ace)) { mainHandEvaluator.isStanding = true; splitHandEvaluator.isStanding = true; } return(true); } else { splitHandEvaluator = null; amountBetOnSplitHand = 0; } } return(false); }
public BlackjackPlayer(Blackjack <PlayerIdType> controller, PlayerPointManager pointManager, PlayerIdType playerIdObject) : base(pointManager, playerIdObject) { boughtInsurance = false; this.controller = controller; mainHandEvaluator = new BlackjackCardListEvaluator(hand); splitHandEvaluator = null; amountBetOnSplitHand = 0; }
public void IsBustTest() { var hand = new BlackjackCardListEvaluator(new PlayingCardList()); hand.cards.Add(new PlayingCard(PlayingCard.Suit.Clubs, PlayingCard.Value.King)); hand.cards.Add(new PlayingCard(PlayingCard.Suit.Clubs, PlayingCard.Value.King)); hand.cards.Add(new PlayingCard(PlayingCard.Suit.Clubs, PlayingCard.Value.King)); hand.cards.Add(new PlayingCard(PlayingCard.Suit.Clubs, PlayingCard.Value.King)); Assert.IsTrue(hand.isBust); }
/// <summary> /// True = win; Null = tie; False = lose. /// </summary> public bool? IsWinner(BlackjackCardListEvaluator dealer) { if(!isBust && handValue == dealer.handValue && isBlackjack == dealer.isBlackjack) { return null; } else { return !isBust && (dealer.isBust || (handValue > dealer.handValue || (isBlackjack && !dealer.isBlackjack))); } }
/// <summary> /// True = win; Null = tie; False = lose. /// </summary> public bool?IsWinner(BlackjackCardListEvaluator dealer) { if (!isBust && handValue == dealer.handValue && isBlackjack == dealer.isBlackjack) { return(null); } else { return(!isBust && (dealer.isBust || (handValue > dealer.handValue || (isBlackjack && !dealer.isBlackjack)))); } }
static long GetWinnings(BlackjackCardListEvaluator dealer, BlackjackCardListEvaluator cardListEvaluator, ulong bet) { long winningsOrLosings; switch (cardListEvaluator.IsWinner(dealer)) { case true: winningsOrLosings = cardListEvaluator.isBlackjack ? (long)(bet * 1.5): (long)bet; break; case false: winningsOrLosings = (long)bet * -1L; break; default: winningsOrLosings = 0; break; } return(winningsOrLosings); }