Advertisement
oanap123

Python Project 2

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