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 26 Python
Python实现统计英文单词个数及字符串分割代码
May 28 Python
python中实现迭代器(iterator)的方法示例
Jan 19 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
使用python爬取抖音视频列表信息
Jul 15 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 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 模拟$_PUT实现代码
2010/03/15 PHP
php魔术变量用法实例详解
2014/11/13 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
关于全局变量和局部变量的那些事
2013/01/11 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
原生JS实现留言板
2020/03/26 Javascript
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
python3.7 sys模块的具体使用
2019/07/22 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
列车乘务员工作不细心检讨书
2014/10/07 职场文书
奖学金个人总结
2015/03/04 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
初中地理教学反思
2016/02/19 职场文书
mysql优化
2021/04/06 MySQL