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制作简单的网页爬虫
Nov 22 Python
Python 使用SMTP发送邮件的代码小结
Sep 21 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
Dec 10 Python
Anaconda入门使用总结
Apr 05 Python
浅谈Python中的bs4基础
Oct 21 Python
python用for循环求和的方法总结
Jul 08 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
python通过cython加密代码
Dec 11 Python
python munch库的使用解析
May 25 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 三维饼图的实现代码
2008/09/28 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
jquery自定义表格样式
2015/11/23 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python实现猜数字小游戏
2020/03/24 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python print出共轭复数的方法详解
2019/06/25 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
python迭代器常见用法实例分析
2019/11/22 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
道德之星事迹材料
2014/05/03 职场文书
就业协议书
2014/09/12 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
颐和园的导游词
2015/01/30 职场文书
英语导游词
2015/02/13 职场文书
如何写辞职书
2015/02/26 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS