Python实现国外 * 热门游戏Craps(双骰子)
作者:hebedich 发布时间:2023-12-13 23:22:21
标签:Python,国外 , 游戏,Craps
运行方法:
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 "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
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有所帮助。


猜你喜欢
- 在前一篇博客我们学习了 Go 数组,其要求所有元素为同一数据类型,如果希望存储不同类型的数据,就要用到结构体相关知识。结构体的定义:存储相同
- 使用实例引用类的属性时,会发生动态绑定。即python会在实例每次引用类属性时,将对应的类属性绑定到实例上。动态绑定的例子:class A:
- 先给大家介绍下Python读取文件夹按数字排序的代码,内容如下所示:python中 os.listdir()方法用于返回指定的文件夹包含的文
- pandas解决excel科学计数法问题excel默认处理超14位的数字成科学计数法,且后面的数字默认变0。使用pandas合表或者生成新表
- 引言随着我被拉入一个新的群聊“生产环境死锁问题排查解决”,打破了午后的悠然惬意,点开群聊秒送了一个6
- 在vue-router控制前端权限是常见需求:有一种做法是直接在后端完成判断,提供页面列表和操作列表,在前端进行渲染,但这个方案并不优雅,前
- 表结构的修改1、表结构修改后,原来表中已存在的数据,就会出现结构混乱,makemigrations更新表的时候就会出错比如第一次建模型,漏了
- MySql:MySQL数据库实现分页比较简单,提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由
- 最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前6
- mysql的字符集设置有多个层级,在mysql中存储中文,如果不能正确设置字符集,很容易出现数据乱码。今天就有一个用户反馈他数据库中的数据下
- 经常看到说正则的文章,但说的只是方法,却很少有说以下几个基本概念:1.贪婪:+,*,?,{m,n}等默认是贪婪匹配,即尽可能多匹配,也叫最大
- 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用。最近开发遇到一些需要使用正则
- 本文实例讲述了Python Zip和Enumerate用法。分享给大家供大家参考,具体如下:Python 中的 Zipzip的作用:可以在处
- 使用threading.Event可以实现线程间相互通信,之前的Python:使用threading模块实现多线程编程七[使用Conditi
- props传值时子组件检测不到我们在Vue项目开发的过程中,经常会需要在父子组件传值,我们都知道,父子组件传值的时候是通过 props 来进
- 一:建立对象引用计数1. 相关代码void_Py_NewReference(PyObject *op){ if (
- $server->connections//server−>connections遍历所有websocket连接用户的fd,给所
- 一旦你已经为MySQL实例管理器设置了一个密码文件并且IM正在运行,你可以连接它。你可以使用mysql客户端工具通过标准MySQL API来
- 1. TinyMCE免费,开源,轻量的在线编辑器,基于 javascript,高度可定制,跨平台。2. FCKEditor免费,开源,用户量
- /* 判断指定的内容是否为空,若为空则弹出 警告框 */ function isEmpty(theValue, strMsg){ if(th