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打开网页和暂停实例
Sep 30 Python
深入理解Python3中的http.client模块
Mar 29 Python
python数据结构之列表和元组的详解
Sep 23 Python
python的re正则表达式实例代码
Jan 24 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
python3 webp转gif格式的实现示例
Dec 10 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 Python
python实现双链表
May 25 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
自动更新作用
2006/10/08 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
nodejs使用socket5进行代理请求的实现
2020/02/21 NodeJs
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
英国景点门票网站:attractiontix
2019/08/27 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
文员的职业生涯规划发展方向
2014/02/08 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL