This is code for a text-based game of Blackjack.
I would also like advice on how can I implement a betting system in this program. For example starting with an amount of chips and choosing how much of them to bet.
import random
card_suit = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
card_value = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
deck = [(value, suit) for suit in card_suit for value in card_value]
def card_points(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_cards = [deck.pop(), deck.pop()]
dealer_cards = [deck.pop()]
player_points = sum(card_points(card) for card in player_cards)
dealer_points = sum(card_points(card) for card in dealer_cards)
def points(dealer_points, player_points, dealer_cards, player_cards):
while dealer_points < 17:
new_card = deck.pop()
dealer_cards.append(new_card)
dealer_points += card_points(new_card)
print("Dealer's Cards:", dealer_cards)
print("Dealer's Points:", dealer_points)
print("\n")
while True:
print("Dealer's Cards:", dealer_cards)
print("Dealer's Points:", dealer_points)
print("\n")
print("Player's Cards:", player_cards)
print("Player's Points:", player_points)
print("\n")
decision = input('What will you do? ["hit" for a new card, "stand" to end the game]: ').lower()
if decision == "hit":
new_card = deck.pop()
player_cards.append(new_card)
player_points = sum(card_points(card) for card in player_cards)
if player_points > 21:
print("Dealer's Cards:", dealer_cards)
print("Dealer's Points:", dealer_points)
print("Player's Cards:", player_cards)
print("Player's Points:", player_points)
print("Dealer wins (player has more than 21 points)")
break
elif decision == "stand":
while dealer_points < 17:
new_card = deck.pop()
dealer_cards.append(new_card)
dealer_points += card_points(new_card)
print("Dealer's Cards:", dealer_cards)
print("Dealer's Points:", dealer_points)
print("Player's Cards:", player_cards)
print("Player's Points:", player_points)
if player_points > 21:
print("Dealer wins (player has more than 21 points).")
elif dealer_points > 21:
print("You win! (dealer has more than 21 points)")
elif player_points > dealer_points:
print("You win! (you have more points than the dealer)")
elif player_points < dealer_points:
print("Dealer wins (dealer has more points than the player).")
else:
print("It's a tie.")
break
else:
print("Unknown input.")
continue