day 11 - Blackjack game

This commit is contained in:
Tanguy Deleplanque
2025-06-18 14:37:23 +02:00
parent b77a884c67
commit 230edd5574

83
011/task.py Normal file
View File

@ -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([], [])