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获取当前路径实现代码
May 08 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
对Python实现累加函数的方法详解
Jan 23 Python
WxPython建立批量录入框窗口
Feb 27 Python
python操作文件的参数整理
Jun 11 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Python logging日志库空间不足问题解决
Sep 14 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
php内嵌函数用法实例
2015/03/20 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
js常用DOM方法详解
2017/02/04 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
Vue自定义指令详解
2017/07/28 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
python解析html开发库pyquery使用方法
2014/02/07 Python
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python微信撤回监测代码
2019/04/29 Python
python计算二维矩形IOU实例
2020/01/18 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
地质灾害防治方案
2014/05/14 职场文书
活动宣传策划方案
2014/05/23 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
寒山寺导游词
2015/02/03 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server