Advertisement
oanap123

Python Project 2

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