2026. június 12., péntek

Blackjack python

import random

card_categories = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
cards_list = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
deck = [(card, category) for category in card_categories for card in cards_list]

def card_value(card):
    if card[0] in ['Jack', 'Queen', 'King']:
        return 10
    elif card[0] == 'Ace':
        return 11
    else:
        return int(card[0])

random.shuffle(deck)
player_card = [deck.pop(), deck.pop()]
dealer_card = [deck.pop(), deck.pop()]

while True:
    player_score = sum(card_value(card) for card in player_card)
    dealer_score = sum(card_value(card) for card in dealer_card)
    print("Cards Player Has:", player_card)
    print("Score Of The Player:", player_score)
    print("Dealer's Visible Card:", dealer_card[0])  
    print("\n")

    choice = input('What do you want? ["play" to request another card, "stop" to stop]: ').lower()
    if choice == "play":
        new_card = deck.pop()
        player_card.append(new_card)
    elif choice == "stop":
        break
    else:
        print("Invalid choice. Please try again.")
        continue

    if player_score > 21:
        print("Cards Dealer Has:", dealer_card)
        print("Score Of The Dealer:", dealer_score)
        print("Cards Player Has:", player_card)
        print("Score Of The Player:", player_score)
        print("Dealer wins (Player Loss Because Player Score is exceeding 21)")
        break

while dealer_score < 17:
    new_card = deck.pop()
    dealer_card.append(new_card)
    dealer_score += card_value(new_card)

print("Dealer reveals cards:", dealer_card)
print("Dealer's Score:", dealer_score)
print("\n")

if dealer_score > 21:
    print("Player wins (Dealer Loss Because Dealer Score is exceeding 21)")
elif player_score > dealer_score:
    print("Player wins (Player Has Higher Score than Dealer)")
elif dealer_score > player_score:
    print("Dealer wins (Dealer Has Higher Score than Player)")
else:
    print("It's a tie.")
    
print("Final Cards - Player:", player_card, "Score:", player_score)
print("Final Cards - Dealer:", dealer_card, "Score:", dealer_score)
----------------
Input for the program ( Optional )
Output:
Cards Player Has: [('4', 'Diamonds'), ('8', 'Clubs')]
Score Of The Player: 12
Dealer's Visible Card: ('9', 'Hearts')
What do you want? ["play" to request another card, "stop" to stop]: 
---------------
STDIN
Input for the program ( Optional )
Output:
Cards Player Has: [('3', 'Hearts'), ('7', 'Diamonds')]
Score Of The Player: 10
Dealer's Visible Card: ('8', 'Spades')

What do you want? ["play" to request another card, "stop" to stop]: stop
Dealer reveals cards: [('8', 'Spades'), ('Ace', 'Spades')]
Dealer's Score: 19

Dealer wins (Dealer Has Higher Score than Player)
Final Cards - Player: [('3', 'Hearts'), ('7', 'Diamonds')] Score: 10
Final Cards - Dealer: [('8', 'Spades'), ('Ace', 'Spades')] Score: 19

Nincsenek megjegyzések:

Megjegyzés küldése