└── main.py /main.py: -------------------------------------------------------------------------------- 1 | 2 | import random 3 | print("welcome to the Blackjack game") 4 | 5 | def random_choice_card(): 6 | cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10] 7 | card =random.choice(cards) 8 | return card 9 | 10 | def calculate_score(card): 11 | if len(card)==2 and sum(card) >21: 12 | return 0 13 | 14 | if 11 in card and sum(card) >21: 15 | card.remove(11) 16 | card.append(1) 17 | return sum(card) 18 | 19 | 20 | def compare_score(user_score, computer_score): 21 | if user_score > 21 and computer_score > 21: 22 | return "You went over. You lose 😤" 23 | 24 | if user_score == computer_score: 25 | return "Draw 🙃" 26 | elif computer_score == 0: 27 | return "Lose, opponent has Blackjack 😱" 28 | elif user_score == 0: 29 | return "Win with a Blackjack 😎" 30 | elif user_score > 21: 31 | return "You went over. You lose 😭" 32 | elif computer_score > 21: 33 | return "Opponent went over. You win 😁" 34 | elif user_score > computer_score: 35 | return "You win 😃" 36 | else: 37 | return "You lose 😤" 38 | 39 | 40 | is_game_over =False 41 | user_card =[] 42 | computer_card =[] 43 | 44 | for _ in range(2): 45 | user_card.append(random_choice_card()) 46 | computer_card.append(random_choice_card()) 47 | 48 | 49 | while not is_game_over: 50 | user_score = calculate_score(user_card) 51 | computer_score = calculate_score(computer_card) 52 | 53 | print(f"user card :{user_card} and current score is: {user_score} ") 54 | print(f" computer first card is: {computer_card[0]}") 55 | 56 | if user_score == 0 or computer_score == 0 or user_score > 21: 57 | is_game_over = True 58 | else: 59 | user_want_to_add_card = input("do you want to add any other card. yes or no\n").lower() 60 | if user_want_to_add_card =="yes": 61 | user_card.append(random_choice_card()) 62 | elif user_want_to_add_card =="no": 63 | is_game_over = True 64 | 65 | while computer_score != 0 and computer_score < 17: 66 | computer_card.append(random_choice_card()) 67 | computer_score = calculate_score(computer_card) 68 | 69 | 70 | 71 | print(f" Your final hand: {user_card}, final score: {user_score}") 72 | print(f" Computer's final hand: {computer_card}, final score: {computer_score}") 73 | print(compare_score(user_score, computer_score)) 74 | 75 | 76 | --------------------------------------------------------------------------------