Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
def test_init():
    bank = Bank()
    assert bank.balance == 0
Ejemplo n.º 9
0
def test_deposit():
    bank = Bank()
    bank.deposit(5)
    assert bank.balance == 5
Ejemplo n.º 10
0
 def test_win_deposits(self):
     player = Player(bank=Bank(10))
     player.win(5)
     assert player.balance == 15