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 Property属性的2种用法
Jun 21 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
Python正则捕获操作示例
Aug 19 Python
python使用pycharm环境调用opencv库
Feb 11 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
opencv python如何实现图像二值化
Feb 03 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 分页原理详解
2009/08/21 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
js压缩利器
2007/02/20 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Python中用于返回绝对值的abs()方法
2015/05/14 Python
python文件与目录操作实例详解
2016/02/22 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
捐资助学倡议书
2014/04/15 职场文书
高中班主任评语大全
2014/04/25 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技