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实现Linux下守护进程的编写方法
Aug 22 Python
Python3实现生成随机密码的方法
Aug 23 Python
Python功能键的读取方法
May 28 Python
浅析Python中的for 循环
Jun 09 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
python如何保证输入键入数字的方法
Aug 23 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
python MD5加密的示例
Oct 19 Python
python基于selenium爬取斗鱼弹幕
Feb 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
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
javascript 对象的定义方法
2007/01/10 Javascript
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
从零学Python之入门(五)缩进和选择
2014/05/27 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
django 环境变量配置过程详解
2019/08/06 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
python3 简单实现组合设计模式
2020/07/02 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
剪彩仪式主持词
2014/03/19 职场文书
心理学专业求职信
2014/06/16 职场文书
殡葬服务心得体会
2014/09/11 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python