From 999830268d95a9297d27b96fe6262e72f49cfb3c Mon Sep 17 00:00:00 2001 From: Tanmaydeep Singh <92568870+Tanmaydeep-Singh@users.noreply.github.com> Date: Thu, 4 Aug 2022 01:41:58 +0530 Subject: [PATCH 1/2] Create Blackjack.py Blackjack is a classic casino game of luck and strategy --- freegames/Blackjack.py | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 freegames/Blackjack.py diff --git a/freegames/Blackjack.py b/freegames/Blackjack.py new file mode 100644 index 00000000..44b616e9 --- /dev/null +++ b/freegames/Blackjack.py @@ -0,0 +1,86 @@ +# Blackjack is a classic casino game of luck and strategy + +# Face cards each count as 10, Aces count as 1 or 11, all others count at face value. An Ace with any 10, Jack, Queen, or King is a “Blackjack.” +# If you have a Blackjack, the dealer pays you one-and-a-half times your bet — unless the dealer also has a Blackjack, in which case it's a “push” and neither wins. + +### In this code, learn to make this fun game and try not to get addicted. + + +import random +from replit import clear + +def deal_card(): + """Returns a random card from the deck.""" + cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10] + card = random.choice(cards) + return card + + +def calculate_score(cards): + """Take a list of cards and return the score calculated from the cards""" + + if sum(cards) == 21 and len(cards) == 2: + return 0 + if 11 in cards and sum(cards) > 21: + cards.remove(11) + cards.append(1) + return sum(cards) + +def compare(user_score, computer_score): + if user_score > 21 and computer_score > 21: + return "You went over. You lose 😤" + + + if user_score == computer_score: + return "Draw 🙃" + elif computer_score == 0: + return "Lose, opponent has Blackjack 😱" + elif user_score == 0: + return "Win with a Blackjack 😎" + elif user_score > 21: + return "You went over. You lose 😭" + elif computer_score > 21: + return "Opponent went over. You win 😁" + elif user_score > computer_score: + return "You win 😃" + else: + return "You lose 😤" + +def play_game(): + + + user_cards = [] + computer_cards = [] + is_game_over = False + + for _ in range(2): + user_cards.append(deal_card()) + computer_cards.append(deal_card()) + + + while not is_game_over: + user_score = calculate_score(user_cards) + computer_score = calculate_score(computer_cards) + print(f" Your cards: {user_cards}, current score: {user_score}") + print(f" Computer's first card: {computer_cards[0]}") + + if user_score == 0 or computer_score == 0 or user_score > 21: + is_game_over = True + else: + user_should_deal = input("Type 'y' to get another card, type 'n' to pass: ") + if user_should_deal == "y": + user_cards.append(deal_card()) + else: + is_game_over = True + + while computer_score != 0 and computer_score < 17: + computer_cards.append(deal_card()) + computer_score = calculate_score(computer_cards) + + print(f" Your final hand: {user_cards}, final score: {user_score}") + print(f" Computer's final hand: {computer_cards}, final score: {computer_score}") + print(compare(user_score, computer_score)) + +while input("Do you want to play a game of Blackjack? Type 'y' or 'n': ") == "y": + clear() + play_game() From c76fb2b05eabe6c3de9f789773685c05dae5b2d2 Mon Sep 17 00:00:00 2001 From: Tanmaydeep Singh <92568870+Tanmaydeep-Singh@users.noreply.github.com> Date: Sat, 1 Oct 2022 14:01:39 +0530 Subject: [PATCH 2/2] Replet removal --- freegames/Blackjack.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/freegames/Blackjack.py b/freegames/Blackjack.py index 44b616e9..97cf79fa 100644 --- a/freegames/Blackjack.py +++ b/freegames/Blackjack.py @@ -7,7 +7,7 @@ import random -from replit import clear + def deal_card(): """Returns a random card from the deck.""" @@ -82,5 +82,4 @@ def play_game(): print(compare(user_score, computer_score)) while input("Do you want to play a game of Blackjack? Type 'y' or 'n': ") == "y": - clear() play_game()