Advertisement
oanap123

Activity 2

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