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 相关文章推荐
在Python中使用sort()方法进行排序的简单教程
May 21 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 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简单浏览目录内容的实现代码
2013/06/07 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
Jquery replace 字符替换实现代码
2010/12/02 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
python绘制简单彩虹图
2018/11/19 Python
python3 下载网络图片代码实例
2019/08/27 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
妇科医生自荐信
2013/11/05 职场文书
大三学习计划书范文
2014/05/02 职场文书
防沙治沙典型材料
2014/05/07 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python