Advertisement
oanap123

Python Project 2

Jul 4th, 2018
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.43 KB | None | 0 0
  1. import random
  2.  
  3. def main():
  4.     #Initialize variables
  5.     play_again_counter = 0
  6.     winnings = 0
  7.     account = 1000
  8.  
  9.     #Get user's name and print out starting value
  10.     name = input("Name? ")
  11.     print(name + " has $1,000")
  12.     print()
  13.  
  14.     #Output updated account total for player
  15.     while play_again_counter == 0:
  16.         winnings = play_hand(name)
  17.         account += winnings
  18.         print()
  19.         print(name + " has $" + str(account))
  20.         print()
  21.  
  22.         #Ask player if they want to play again
  23.         check = input("Play again? (y/n) ")
  24.         print()
  25.         if check == 'y':
  26.             play_again_counter = 0
  27.         else:
  28.             play_again_counter = 1
  29.  
  30. def play_hand(name):
  31.     #Deal intial cards for dealer and player
  32.     dealer_num = random.randint(2, 11)
  33.     print("Dealer received card of value " + str(dealer_num))
  34.     player_num1 = random.randint(2, 11)
  35.     print(name + " received card of value " + str(player_num1))
  36.     player_num2 = random.randint(2, 11)
  37.     print(name + " received card of value " + str(player_num2))
  38.  
  39.     #Calculate totals for dealer and player
  40.     dealer_total = dealer_num
  41.     print("Dealer total: " + str(dealer_total))
  42.     player_total = player_num1 + player_num2
  43.     print(name + " total: " + str(player_total))
  44.  
  45.     #Initialize counter variables
  46.     dealer_counter = 0
  47.     player_counter = 0
  48.  
  49.     #Check if player total is 21
  50.     if player_total == 21:
  51.         #Continue picking cards for dealer if player gets 21
  52.         while dealer_counter == 0:
  53.             dealer_card = random.randint(2, 11)
  54.             dealer_total += dealer_card
  55.             print("Dealer received card of value " + str(dealer_card))
  56.             print("Dealer total: " + str(dealer_total))
  57.             print(name + " total: " + str(player_total))
  58.             print()
  59.             if dealer_total >= 17:
  60.                 dealer_counter = 1
  61.         #Output results for dealer ending less than 21
  62.         if dealer_total < 21:
  63.             print(name + " wins")
  64.             winnings = 25
  65.             return winnings
  66.         #Output results for dealer tie with player
  67.         elif dealer_total == 21:
  68.             print("Push")
  69.             winnings = 0
  70.             return winnings
  71.         #Output results for dealer bust
  72.         else:
  73.             print("Dealer bust")
  74.             winnings = 25
  75.             return winnings
  76.  
  77.     #Check if player total is less than 21
  78.     elif player_total < 21:
  79.         #Ask player what move they want to make
  80.         while player_counter == 0:
  81.             move = input("Move? (h/s) ")
  82.             print()
  83.             #Continue dealing cards to player and outputting results for hit
  84.             if move == 'h':
  85.                 player_card = random.randint(2, 11)
  86.                 player_total += player_card
  87.                 print(name + " received card of value " + str(player_card))
  88.                 print("Dealer total: " + str(dealer_total))
  89.                 print(name + " total: " + str(player_total))
  90.                 print()
  91.                 if player_total >= 21:
  92.                     player_counter = 1
  93.             #Stop dealing cards to player for stay
  94.             elif move == 's':
  95.                 player_counter = 1
  96.  
  97.         #Check if player does not bust
  98.         if player_total <= 21:
  99.             #Continue picking cards for dealer if player stays
  100.             while dealer_counter == 0:
  101.                 dealer_card = random.randint(2, 11)
  102.                 dealer_total += dealer_card
  103.                 print("Dealer received card of value " + str(dealer_card))
  104.                 print("Dealer total: " + str(dealer_total))
  105.                 print(name + " total: " + str(player_total))
  106.                 print()
  107.  
  108.                 #Pick cards for dealer until his total is less than 17
  109.                 if dealer_total >= 17:
  110.                     dealer_counter = 1
  111.                 if dealer_total > player_total:
  112.                     dealer_counter = 1
  113.             #Check if dealer ends less than 21
  114.             if dealer_total < 21:
  115.                 #Compare dealer total to player total and determine winner
  116.                 if dealer_total < player_total:
  117.                     print(name + " wins")
  118.                     winnings = 25
  119.                     return winnings
  120.                 elif dealer_total > player_total:
  121.                     print("Dealer wins")
  122.                     winnings = -25
  123.                     return winnings
  124.                 else:
  125.                     print("Push")
  126.                     winnings = 0
  127.                     return winnings
  128.             #Check if dealer ends at 21
  129.             elif dealer_total == 21:
  130.                 #Compare dealer total to player total and determine winner
  131.                 if dealer_total == player_total:
  132.                     print("Push")
  133.                     winnings = 0
  134.                     return winnings
  135.                 else:
  136.                     print("Dealer wins")
  137.                     winnings = -25
  138.                     return winnings
  139.             #Check if dealer busts
  140.             else:
  141.                 print("Dealer bust")
  142.                 winnings = 25
  143.                 return winnings
  144.  
  145.         #Check if player busts after move
  146.         elif player_total > 21:
  147.             print(name + " bust")
  148.             winnings = -25
  149.             return winnings
  150.  
  151.     #Check if player busts after initial pick
  152.     else:
  153.         print(name + " bust")
  154.         winnings = -25
  155.         return winnings
  156.  
  157. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement