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


Posted in Python onMarch 31, 2015

运行方法:

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

Python 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
python生成圆形图片的方法
Mar 25 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
python接口测试返回数据为字典取值方式
Feb 12 Python
Python进程池与进程锁之语法学习
Apr 11 Python
通过代码实例展示Python中列表生成式的用法
Mar 31 #Python
使用Python实现一个简单的项目监控
Mar 31 #Python
详解Python中内置的NotImplemented类型的用法
Mar 31 #Python
python计算N天之后日期的方法
Mar 31 #Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 #Python
python根据出生日期获得年龄的方法
Mar 31 #Python
用Python进行一些简单的自然语言处理的教程
Mar 31 #Python
You might like
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
JS与C#编码解码
2013/12/03 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
python插入数据到列表的方法
2015/04/30 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python datetime中strptime用法详解
2019/08/29 Python
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
《问银河》教学反思
2014/02/19 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
政风行风评议工作总结
2014/10/21 职场文书
雨花台导游词
2015/02/06 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
基于Go语言构建RESTful API服务
2021/07/25 Golang