diff --git a/blackjack.py b/blackjack.py index ddb3a13..a30ca89 100644 --- a/blackjack.py +++ b/blackjack.py @@ -16,45 +16,52 @@ def main(): dealer = game.dealer player = game.player + while game.active: screen.update(game) if player.blackjack(): game.active = False print('Blackjack!') + break if game.active: user_input = input(str(deck.count()) + ' cards left in deck.\n[H]it or [S]tand? ') - if not user_input: - user_input = 's' - - match user_input.lower(): - case 'y': - game.active = False - case 'q': - game.active = False - kill = True - case 'n': - game.active = False - case 'h': - player.hand.append(deck.draw()) - if player.bust(game): + match user_input.lower(): + case 'y': game.active = False - case 's': - game.active = False - while dealer.score(game) < 17: - dealer.hand.append(deck.draw()) + case 'q': + game.active = False + kill = True + case 'n': + game.active = False + case 'h': + player.hand.append(deck.draw()) + if player.bust(game): + game.active = False + case 's': + game.active = False + while dealer.score(game) < 17: + dealer.hand.append(deck.draw()) + screen.update(game) - if not game.active: game.score() - user_input = input('Play again? [Y/n] ') + kill = False screen = Screen() + print(screen.intro) + num_decks = input('How many decks? (1-8): ') deck = Deck(num_decks) + while not kill: main() + user_input = input('Play again? [Y/n] ') + match user_input.lower(): + case 'n': + kill = True + diff --git a/src/deck.py b/src/deck.py index 99b2876..f945e3e 100644 --- a/src/deck.py +++ b/src/deck.py @@ -9,6 +9,7 @@ class Deck: return len(self.cards) def shuffle(self, n_decks): + self.cards = [] n_decks = 1 if not n_decks or n_decks not in '12345678' else n_decks n_decks = int(n_decks) n_decks = 8 if n_decks > 8 else n_decks