def test_withdraw(): bank = Bank(10) bank.withdraw(5) assert bank.balance == 5 bank.withdraw(5) assert bank.balance == 0 bank.withdraw(5) assert bank.balance == -5
def test_tie(self): player = Player(bank=Bank(10), bet_amount=5) game = Game(player=player, deck=Deck(card_nums=[10, 9, 10, 9])) game.start() assert player.balance == 5 assert player.total == 19 game.dealer_go() assert player.status == Statuses["TIE"] assert player.balance == 10
def test_player_blackjack(self): player = Player(bank=Bank(10), bet_amount=5) game = Game(player=player, deck=Deck(card_nums=[10, 9, 10, 1])) game.start() assert player.balance == 5 assert player.total == 21 game.dealer_go() assert player.status == Statuses["BLACKJACK"] assert player.balance == 17.5
def test_player_bet(self): player = Player(bank=Bank(10), bet_amount=5) game = Game(player=player, deck=Deck(card_nums=[10, 10, 10, 10, 10])) game.start() assert player.balance == 5 assert player.total == 20 game.player_go() assert player.total == 30 assert player.status == Statuses["BUST"] assert player.balance == 5
def play(json=None, deck_nums=None): validate_body(json) type = json["type"] print(type, flush=True) if type == "DEAL": player = Player(bank=Bank(json["balance"]), bet_amount=int(json["bet"])) deck = (Deck(card_nums=deck_nums, shuffle=True) if deck_nums else Deck( shuffle=True)) game = Game(player=player, deck=deck) game.start() return make_response(game) validate_deck_input(deck_nums) player_cards = deserialize_cards(json["player_cards"]) dealer_cards = deserialize_cards(json["dealer_cards"]) deck = Deck(card_nums=deck_nums) player = Player(bank=Bank(json["balance"]), bet_amount=json["bet"], cards=player_cards) dealer = Dealer(cards=dealer_cards) game = Game(player=player, dealer=dealer, deck=deck) if type == "HIT": card = game.player_go() if type == "STAY": dealer_cards = game.dealer_go() if type == "DOUBLE": card = game.player_double_down() # Double down should end game dealer_cards = game.dealer_go() return make_response(game)
def test_double_down(self): player = Player(bank=Bank(10), bet_amount=5) deck = Deck(card_nums=[10, 9, 10, 5, 5]) game = Game(player=player, deck=deck) game.start() assert player.balance == 5 assert player.total == 10 player.double_down(deck.deal_one()) # Should double bet and withdraw assert player.balance == 0 assert player.total == 20 game.dealer_go() assert game.dealer.total == 19 assert player.status == Statuses["WIN"] # Should win double original bet assert player.balance == 20
def __init__(self, turns_remaining=10, bank=None, cards=None, bet_amount=None): validate_cards(cards) bank = bank or Bank(1000) # bet = bet or 0 # print("Withdrawing", bet, "dollars") # bank.withdraw(bet) self.name = "" self.cards = cards or [] self.total = self.get_total() self.status = Statuses["PLAYING"] self.turns_remaining = turns_remaining self.bet_amount = bet_amount or 0 self._bank = bank
def test_init(): bank = Bank() assert bank.balance == 0
def test_deposit(): bank = Bank() bank.deposit(5) assert bank.balance == 5
def test_win_deposits(self): player = Player(bank=Bank(10)) player.win(5) assert player.balance == 15