Advertisement
oanap123

Python Project 2

Jul 4th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.43 KB | None | 0 0
  1. import random
  2.  
  3. def main():
  4.     #Initialize variables
  5.     play_again_counter = 0
  6.     winnings = 0
  7.     bet = 25
  8.     money = 1000
  9.  
  10.     #Get user's name and print out starting value
  11.     name = input("Name? ")
  12.     print(name + " has $1,000")
  13.     print()
  14.  
  15.     bet = input_bet(bet, money)
  16.  
  17.     winnings = play_hand(name, bet)
  18.     money += winnings
  19.     print()
  20.     print(name + " has $" + str(money))
  21.     print()
  22.  
  23.     bet = input_bet(bet, money)
  24.  
  25.  
  26. def input_bet(bet, money):
  27.     #Ask for bet
  28.     bet_check = input("Bet? (0 to quit, Enter to stay at $" + str(bet) + ") ")
  29.    
  30.     #Check that bet is a whole number
  31.     try:
  32.         bet_check % 1 == 0
  33.     except TypeError:
  34.         print("You must bet a whole number")
  35.  
  36.     #Check that bet is less than amount in account
  37.     try:
  38.         bet_check <= money
  39.     except ValueError:
  40.         print("You cannot bet more than $" + money)
  41.  
  42.     #Check that bet is not negative
  43.     try:
  44.         bet_check >= 0
  45.     except ValueError:
  46.         print("You cannot bet a negative amount")
  47.  
  48.     #Quit game if player inputs 0
  49.     if bet_check == 0:
  50.         print("Player has quit")
  51.         quit()
  52.     #Check if they have enough money in the account to bet the same amount
  53.     elif bet_check == "":
  54.         if bet < money:
  55.             bet = bet
  56.         elif bet > money:
  57.             print("You cannot bet more than $" + money)
  58.             while bet > money:
  59.                 try:
  60.                     bet = input("Input a value less than your balance")
  61.                     bet_check % 1 == 0
  62.                 except ValueError:
  63.                     print("Input a whole number")
  64.     else:
  65.         bet = bet_check
  66.  
  67.     return bet
  68.  
  69.  
  70. def play_hand(name, bet):
  71.     #Deal intial cards for dealer and player
  72.     dealer_num = random.randint(2, 11)
  73.     print("Dealer received card of value " + str(dealer_num))
  74.     player_num1 = random.randint(2, 11)
  75.     print(name + " received card of value " + str(player_num1))
  76.     player_num2 = random.randint(2, 11)
  77.     print(name + " received card of value " + str(player_num2))
  78.  
  79.     #Calculate totals for dealer and player
  80.     dealer_total = dealer_num
  81.     print("Dealer total: " + str(dealer_total))
  82.     player_total = player_num1 + player_num2
  83.     print(name + " total: " + str(player_total))
  84.  
  85.     #Initialize counter variables
  86.     dealer_counter = 0
  87.     player_counter = 0
  88.  
  89.     #Check if player total is 21
  90.     if player_total == 21:
  91.         #Continue picking cards for dealer if player gets 21
  92.         while dealer_counter == 0:
  93.             dealer_card = random.randint(2, 11)
  94.             dealer_total += dealer_card
  95.             print("Dealer received card of value " + str(dealer_card))
  96.             print("Dealer total: " + str(dealer_total))
  97.             print(name + " total: " + str(player_total))
  98.             print()
  99.             if dealer_total >= 17:
  100.                 dealer_counter = 1
  101.         #Output results for dealer ending less than 21
  102.         if dealer_total < 21:
  103.             print(name + " wins")
  104.             winnings = bet
  105.             return winnings
  106.         #Output results for dealer tie with player
  107.         elif dealer_total == 21:
  108.             print("Push")
  109.             winnings = 0
  110.             return winnings
  111.         #Output results for dealer bust
  112.         else:
  113.             print("Dealer bust")
  114.             winnings = bet
  115.             return winnings
  116.  
  117.     #Check if player total is less than 21
  118.     elif player_total < 21:
  119.         #Ask player what move they want to make
  120.         while player_counter == 0:
  121.             move = input("Move? (h/s) ")
  122.             print()
  123.             #Continue dealing cards to player and outputting results for hit
  124.             if move == 'h':
  125.                 player_card = random.randint(2, 11)
  126.                 player_total += player_card
  127.                 print(name + " received card of value " + str(player_card))
  128.                 print("Dealer total: " + str(dealer_total))
  129.                 print(name + " total: " + str(player_total))
  130.                 print()
  131.                 if player_total >= 21:
  132.                     player_counter = 1
  133.             #Stop dealing cards to player for stay
  134.             elif move == 's':
  135.                 player_counter = 1
  136.  
  137.         #Check if player does not bust
  138.         if player_total <= 21:
  139.             #Continue picking cards for dealer if player stays
  140.             while dealer_counter == 0:
  141.                 dealer_card = random.randint(2, 11)
  142.                 dealer_total += dealer_card
  143.                 print("Dealer received card of value " + str(dealer_card))
  144.                 print("Dealer total: " + str(dealer_total))
  145.                 print(name + " total: " + str(player_total))
  146.                 print()
  147.  
  148.                 #Pick cards for dealer until his total is less than 17
  149.                 if dealer_total >= 17:
  150.                     dealer_counter = 1
  151.                 if dealer_total > player_total:
  152.                     dealer_counter = 1
  153.             #Check if dealer ends less than 21
  154.             if dealer_total < 21:
  155.                 #Compare dealer total to player total and determine winner
  156.                 if dealer_total < player_total:
  157.                     print(name + " wins")
  158.                     winnings = bet
  159.                     return winnings
  160.                 elif dealer_total > player_total:
  161.                     print("Dealer wins")
  162.                     winnings = -bet
  163.                     return winnings
  164.                 else:
  165.                     print("Push")
  166.                     winnings = 0
  167.                     return winnings
  168.             #Check if dealer ends at 21
  169.             elif dealer_total == 21:
  170.                 #Compare dealer total to player total and determine winner
  171.                 if dealer_total == player_total:
  172.                     print("Push")
  173.                     winnings = 0
  174.                     return winnings
  175.                 else:
  176.                     print("Dealer wins")
  177.                     winnings = -bet
  178.                     return winnings
  179.             #Check if dealer busts
  180.             else:
  181.                 print("Dealer bust")
  182.                 winnings = bet
  183.                 return winnings
  184.  
  185.         #Check if player busts after move
  186.         elif player_total > 21:
  187.             print(name + " bust")
  188.             winnings = -bet
  189.             return winnings
  190.  
  191.     #Check if player busts after initial pick
  192.     else:
  193.         print(name + " bust")
  194.         winnings = -bet
  195.         return winnings
  196.  
  197. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement