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 setUp(self): self.card = Card(1, "As")
class cardTest(unittest.TestCase): def setUp(self): self.card = Card(1, "As") def testhide(self): self.assertEqual(self.card.__repr__(), "{'name': 'As', 'value': 1, 'description': None}") self.card.hide(True) self.assertEqual(self.card.__repr__(), "A Card") self.card.hide(False) self.assertEqual(self.card.__repr__(), "{'name': 'As', 'value': 1, 'description': None}") def testshow(self): self.assertEqual(self.card.get(), "{'name': 'As', 'value': 1, 'description': None}") self.card.hide(True) self.assertEqual(self.card.get(), "{'name': 'As', 'value': 1, 'description': None}") self.card.hide(False)
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)