From 230edd5574609fea626d8e62e4b7006126f63e9f Mon Sep 17 00:00:00 2001 From: Tanguy Deleplanque Date: Wed, 18 Jun 2025 14:37:23 +0200 Subject: [PATCH] day 11 - Blackjack game --- 011/task.py | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 011/task.py diff --git a/011/task.py b/011/task.py new file mode 100644 index 0000000..ff7b89a --- /dev/null +++ b/011/task.py @@ -0,0 +1,83 @@ +import random + +def draw_cards(number): + cards = [] + for i in range(0, number): + card = random.randint(1,14) + if card >= 12: + card = 10 + if card == 11: + card = "A" + cards.append(card) + return(cards) + +def count_score(cards): + score = sum(filter(lambda card: isinstance(card, int), cards)) + for ace in filter(lambda card: isinstance(card, str), cards): + if score + 11 > 21: + score += 1 + else: + score += 11 + return(score) + +def display_players_cards(cards, score): + print(f'Your cards: {cards}, current score: {score}') + +def display_cpu_cards(cards): + print(f'Computer\'s first card: {cards[0]}') + +def dealer_game(cards): + cpu_score = count_score(cards) + if cpu_score < 17: + cards.extend(draw_cards(1)) + dealer_game(cards) + +def compute_winner(player_cards, cpu_cards): + player_score = count_score(player_cards) + cpu_score = count_score(cpu_cards) + + print(f'Your cards: {player_cards} - Score: {player_score}') + print(f'Computer cards: {cpu_cards} - Score: {cpu_score}') + + if cpu_score > 21: + print("Dealer went over 21 - You win!") + elif cpu_score == player_score: + print("It's a draw!") + elif cpu_score > player_score: + print("You lose!") + else: + print("You win") + + + +def play_blackjack(player_cards, cpu_cards): + if player_cards == []: + player_cards = draw_cards(2) + cpu_cards = draw_cards(2) + else: + player_cards.extend(draw_cards(1)) + + player_score = count_score(player_cards) + + display_players_cards(player_cards,player_score) + display_cpu_cards(cpu_cards) + + if player_score > 21: + print("You went over 21 - You lose!") + return + + action = input('Type "y" to get another card, type "n" to pass:') + if action == 'y': + play_blackjack(player_cards, cpu_cards) + else: + dealer_game(cpu_cards) + compute_winner(player_cards, cpu_cards) + wanna_play = input('Do you want to play again? Type "y" or "n":') + + if wanna_play == 'y': + play_blackjack([], []) + +wanna_play = input('Do you want to play a game of Blackjack? Type "y" or "n":') + +if wanna_play == 'y': + play_blackjack([], [])