day 11 - Blackjack game
This commit is contained in:
83
011/task.py
Normal file
83
011/task.py
Normal 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([], [])
|
||||||
Reference in New Issue
Block a user