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实现博客文章爬虫示例
Feb 26 Python
从零学Python之入门(二)基本数据类型
May 25 Python
Python中dictionary items()系列函数的用法实例
Aug 21 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python及PyCharm下载与安装教程
Nov 18 Python
python调用百度语音识别api
Aug 30 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
python sqlite的Row对象操作示例
Sep 11 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
Python字典fromkeys()方法使用代码实例
Jul 20 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
对盗链说再见...
2006/10/09 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
django中的ajax组件教程详解
2018/10/18 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
个人自我剖析材料
2014/02/07 职场文书
务虚会发言材料
2014/12/25 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技