Question
can you please correct my python code and show me how it looks like in python. I keep getting errors and i'm not sure how
import random
suits = ('Hearts', 'Diamonds', 'Spades', 'Clubs')
ranks = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight, "Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace')
values = {"""'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, "Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10, 'Queen':10, 'King':10, 'Ace':11"""}
playing = True
class Card:
def __init__(self, suit, rank):
self.suit = suit
self.rank = rank
def _str_(self):
return self.rank + 'of' + self.suit
class Deck:
def __init__(self):
self.deck = []
for suit in suits:
for rank in ranks:
self.deck.append (Card(suit, rank))
def _str_(self):
deck_comp = ''
for card in self.deck:
deck_comp += '' + card._str_()
return 'The deck has:'+ deck_comp
def shuffle(self):
random.shuffle(self.deck)
def deal(self):
single_card = self.deck.pop()
return single_card
class Hand:
def __init__(self):
self.cards = []
self.value = 0
self.aces = 0
def add_card(self,card):
self.cards.append(card)
self.value += values[card.rank]
if card.rank == 'Ace':
self.aces += 1
def adjust_for_ace (self):
while self.value > 21 and self.aces:
self.value -= 10
self.aces -= 1
class Chips:
def __init__(self):
self.total = 100
self.bet = 0
def win_bet(self):
self.total += self.bet
def lose_bet(self):
self.total -= self.bet
def take_bet(chips):
while True:
try:
chips.bet = int(input('How many chips would you like to bet? '))
except ValueError:
print('Sorry, the bet must be an integer!')
else:
if chips.bet > chips.total:
print("Sorry, your bet can't exceed", chips.total)
else:
break
def hit(deck, hand):
hand.add_card(deck.deal())
hand.adjust_for_ace()
def hit_or_stand (deck, hand):
global playing
while True:
x = input ("Would you like to Hit or Stand? Enter 'h' or 's'")
if x[0].lower() == 'h':
hit(deck, hand)
break
elif x[0].lower() == 's':
print("Player stands. Dealer is playing.")
playing = False
else:
print("Sorry, please try again.")
continue
def show_some(player, dealer):
print("Dealer's Hand:")
print("
print('', dealer.cards[1])
print("Player's Hand:" *player.cards, sep = "")
def show_all (player, dealer):
print("Dealer's Hand:", *dealer.cards, sep = "")
print("Dealer's Hand = ", dealer.value)
print("Player's Hand: ", *player.cards, sep = "")
print("Player's Hand = ", player.value)
def player_busts(player, dealer, chips):
print("Player busts!")
chips.lose_bet()
def player_wins(player, dealer, chips):
print("Player wins!")
chips.win_bet()
def dealer_busts(player, dealer, chips):
print("Dealer busts!")
chips.win_bet()
def dealer_wins (player, dealer, chips):
print("Dealer wins!")
chips.lose_bet()
def push(player, dealer):
print("Dealer and Player tie! It's a push.")
while True:
print('Welcome to BlackJack! Get as close to 21 as you can without going over!n\Dealer hits until he reaches 17. Aces count as 1 or 11.')
deck = Deck()
deck.shuffle()
player_hand = Hand()
player_hand.add_card(deck.deal())
player_hand.add_card (deck.deal())
dealer_hand = Hand()
dealer_hand.add_card (deck.deal())
dealer_hand.add_card (deck.deal())
player_chips = Chips() # the default value is 100
take_bet(player_chips)
show_some(player_hand, dealer_hand)
while playing:
hit_or_stand (deck, player_hand)
show_some(playerhand, dealer_hand)
if player_hand.value > 21:
player_busts(player_hand, dealer_hand, player_chips)
break
if player_hand.value
while dealer_hand.value
hit(deck, dealer_hand)
show_all(player_hand, dealer_hand)
if dealer_hand.value > 21:
dealer_busts(player_hand, dealer_hand, player_chips)
elif dealer_hand.value > player_hand.value:
dealer_wins(player_hand, dealer_hand, player_chips)
elif dealer_hand.value
player_wins(player_hand, dealer_hand, player_chips)
else:
push(player_hand, dealer_hand)
print (" Player's winnings stand at", player_chips.total)
new_game = input("Would you like to play another hand? Enter 'yes' or 'no' ")
if new_game[0].lower() =='yes':
playing = True
continue
else:
print("Thanks for playing!")
break
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started