Python实现国外赌场热门游戏Craps(双骰子)

794次阅读  |  发布于5年以前

运行方法:

1\. 打开python2 IDLE;  
2\. 输入 from craps import *  
3\. 按提示输入运行命令。例如,玩游戏就输入play();查看余额就输入check_bankroll();  
    自动玩看胜率就输入auto()

craps.py


    import random

    point_set = False
    bet = 10
    bankroll = 1000
    sim_win = 0
    sim_lose = 0

    print """
         Welcome to the 'Seven Star' casino!
         You are playing craps now,
         your started bankroll is '$1000',
         the started bet is '$10',
         command: 
           play(): "Rolling the dices"
           check_bankroll(): "Checking your current balance"
           all_in(): Showing "hand"
           set_bet(): "Setting a new bet"
           game(): "Check your game status"
           auto(): "It can be played automatically for you until reach a specific bankroll"
    """

    def roll():
      d1 = random.randrange(1,7)
      d2 = random.randrange(1,7)
      print "You rolled", d1, "+", d2, "=", d1+d2
      return d1 + d2

    def play():

      global point_set, bankroll, point
      global sim_win, sim_lose

      if bankroll < bet:
        print "Sorry, you can't play since you don't have enough money!"
        print """Do you wanna get more money?
            1: Yes
            2: No
           """
        choice = raw_input(">>")
        if choice == str(1):
          money = raw_input("How much do you wanna get?")
          bankroll += int(money)
          print "Your current bankroll is: ", bankroll
        if choice == str(2):
          print "Thanks for playing! See you next time!"
      else:
        if not point_set:
          print
          print "New game. Your bet is: ", bet

        # for the first roll
        r = roll()
        if not point_set:
          if r in (7, 11):
            bankroll += bet
            sim_win += 1
            print "Congratz! You Won! Your bankroll is: ", bankroll
          elif r in (2, 3, 12):
            bankroll -= bet
            sim_lose += 1
            print "Oops! You lost! Your bankroll is: ", bankroll
          else:
            point = r
            point_set = True
            print "Your point is", "[", point, "]"
        # for subsequence rolls
        elif r == 7:
          bankroll -= bet
          sim_lose += 1
          point_set = False
          print "You crapped out! Your bankroll is: ", bankroll 
        elif r == point:
          bankroll += bet
          sim_win += 1
          point_set = False
          print "You made your point! Your bankroll is: ", bankroll

    def set_bet(inp):
      global bet, bankroll, point_set
      print
      if point_set:
        print "WARNING!"
        print "The game has started, you will lose half of your bet if resetting your bet!"
        prompt = raw_input("""
          1: Yes, I am wanna reset my bet!
          2: No, I don't wanna reset my bet!
                  """)
        if prompt == "1":
          point_set = False
          bankroll -= bet/2
          print "Forfeiting current bet. Your bankroll is: ", bankroll
        else:
          pass
      bet = int(inp)
      print "New bet size is: ", bet

    def all_in():
        set_bet(bankroll)

    def check_bankroll():
      global bet
      print "Your current balance is: ", bankroll

    def game():
      total = sim_win + sim_lose
      percent = float(sim_win)/total * 100
      print "So far, the games that you have been playing are: ", total 
      print "Won ", sim_win
      print "Lost ", sim_lose
      print "Overall, you have %d%% to win!" %percent

    def auto():
      game_status = True
      purpose = raw_input("How much are you gonna reach? ")
      while game_status:
        play()
        if bankroll == int(purpose) or bankroll == 0:
          game_status = False

      game()

以上所述就是本文的全部内容了,希望能够对大家学习Python有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8