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 help()函数用法详解
Mar 11 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
python奇偶行分开存储实现代码
Mar 19 Python
Python实现二维数组输出为图片
Apr 03 Python
python 函数内部修改外部变量的方法
Dec 18 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
matplotlib事件处理基础(事件绑定、事件属性)
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中将网址转换为超链接的函数
2011/09/02 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
PHP实现计算器小功能
2020/08/28 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
Python实现自动签到脚本功能
2020/08/20 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
成本会计岗位职责
2015/02/03 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫