Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def main():
- #Initialize variables
- play_again_counter = 0
- winnings = 0
- account = 1000
- #Get user's name and print out starting value
- name = input("Name? ")
- print(name + " has $1,000")
- print()
- #Output updated account total for player
- while play_again_counter == 0:
- winnings = play_hand(name)
- account += winnings
- print()
- print(name + " has $" + str(account))
- print()
- #Ask player if they want to play again
- check = input("Play again? (y/n) ")
- print()
- if check == 'y':
- play_again_counter = 0
- else:
- play_again_counter = 1
- def play_hand(name):
- #Deal intial cards for dealer and player
- dealer_num = random.randint(2, 11)
- print("Dealer received card of value " + str(dealer_num))
- player_num1 = random.randint(2, 11)
- print(name + " received card of value " + str(player_num1))
- player_num2 = random.randint(2, 11)
- print(name + " received card of value " + str(player_num2))
- #Calculate totals for dealer and player
- dealer_total = dealer_num
- print("Dealer total: " + str(dealer_total))
- player_total = player_num1 + player_num2
- print(name + " total: " + str(player_total))
- #Initialize counter variables
- dealer_counter = 0
- player_counter = 0
- #Check if player total is 21
- if player_total == 21:
- #Continue picking cards for dealer if player gets 21
- while dealer_counter == 0:
- dealer_card = random.randint(2, 11)
- dealer_total += dealer_card
- print("Dealer received card of value " + str(dealer_card))
- print("Dealer total: " + str(dealer_total))
- print(name + " total: " + str(player_total))
- print()
- if dealer_total >= 17:
- dealer_counter = 1
- #Output results for dealer ending less than 21
- if dealer_total < 21:
- print(name + " wins")
- winnings = 25
- return winnings
- #Output results for dealer tie with player
- elif dealer_total == 21:
- print("Push")
- winnings = 0
- return winnings
- #Output results for dealer bust
- else:
- print("Dealer bust")
- winnings = 25
- return winnings
- #Check if player total is less than 21
- elif player_total < 21:
- #Ask player what move they want to make
- while player_counter == 0:
- move = input("Move? (h/s) ")
- print()
- #Continue dealing cards to player and outputting results for hit
- if move == 'h':
- player_card = random.randint(2, 11)
- player_total += player_card
- print(name + " received card of value " + str(player_card))
- print("Dealer total: " + str(dealer_total))
- print(name + " total: " + str(player_total))
- print()
- if player_total >= 21:
- player_counter = 1
- #Stop dealing cards to player for stay
- elif move == 's':
- player_counter = 1
- #Check if player does not bust
- if player_total <= 21:
- #Continue picking cards for dealer if player stays
- while dealer_counter == 0:
- dealer_card = random.randint(2, 11)
- dealer_total += dealer_card
- print("Dealer received card of value " + str(dealer_card))
- print("Dealer total: " + str(dealer_total))
- print(name + " total: " + str(player_total))
- print()
- #Pick cards for dealer until his total is less than 17
- if dealer_total >= 17:
- dealer_counter = 1
- if dealer_total > player_total:
- dealer_counter = 1
- #Check if dealer ends less than 21
- if dealer_total < 21:
- #Compare dealer total to player total and determine winner
- if dealer_total < player_total:
- print(name + " wins")
- winnings = 25
- return winnings
- elif dealer_total > player_total:
- print("Dealer wins")
- winnings = -25
- return winnings
- else:
- print("Push")
- winnings = 0
- return winnings
- #Check if dealer ends at 21
- elif dealer_total == 21:
- #Compare dealer total to player total and determine winner
- if dealer_total == player_total:
- print("Push")
- winnings = 0
- return winnings
- else:
- print("Dealer wins")
- winnings = -25
- return winnings
- #Check if dealer busts
- else:
- print("Dealer bust")
- winnings = 25
- return winnings
- #Check if player busts after move
- elif player_total > 21:
- print(name + " bust")
- winnings = -25
- return winnings
- #Check if player busts after initial pick
- else:
- print(name + " bust")
- winnings = -25
- return winnings
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement