Python实现国外赌场热门游戏Craps(双骰子)
admin
2023-07-31 02:15:44
0

运行方法:

    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有所帮助。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...