def _setup_game(initial_bets=[], force_hands=None, initial_balance=1000): gs = BjGameState() for i in range(len(initial_bets)): gs = gs.update(BjPlayerUpdate(BjPlayerActions.JOIN, bet_amt=1000)) for i, p in enumerate(gs.players): gs = gs.update( BjPlayerUpdate(BjPlayerActions.BET, player_id=p.id, hand_idx=0, bet_amt=initial_bets[i])) if force_hands is not None: gs.dealer.hands[0].cards = [Card(c) for c in force_hands.pop()] for i, cards in enumerate(force_hands): gs.players[i].hands[0].cards = [Card(c) for c in cards] return gs
def test_hand_score(self): self.assertEqual(21, BjHand([Card(k) for k in ('Jh', 'Ad')]).score()) self.assertEqual(13, BjHand([Card(k) for k in ('Jh', 'Ad', '2s')]).score()) self.assertEqual(12, BjHand([Card(k) for k in ('Jh', 'Ad', 'As')]).score()) self.assertEqual(12, BjHand([Card(k) for k in ('Ad', 'As')]).score()) self.assertEqual(20, BjHand([Card(k) for k in ('Kd', 'Qs')]).score()) self.assertEqual( True, BjHand([Card(k) for k in ('Jh', 'Ad')]).is_blackjack()) self.assertEqual( False, BjHand([Card(k) for k in ('Kd', 'Qs')]).is_blackjack())
def __init__(self, num_decks=1): self.cards = [Card(f + s) for f in Card.CARD_FACES for s in Card.CARD_SUITS] * num_decks random.shuffle(self.cards)