Python学习之Craps赌博游戏篇
在此先安利一波大佬的Python学习项目地址:https://github.com/jackfrued/Python-100-Days
这些天一直在看着大佬的项目学习Python,这是第五天循环学习完的练习,感觉很有意思,就照着意思写了一下,期间也改进了很多不满意的地方,个人认为这个例子真的很,
可以根据运行中产生的很多问题一步步去解决,达到自己理想的效果
Craps赌博游戏:
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
玩家再次要色子 如果摇出7点 庄家胜
如果摇出第一次摇的点数 玩家胜
否则游戏继续 玩家继续摇色子
玩家进入游戏时有1000元的赌注 全部输光游戏结束
这是那位大佬的版本:
1 from random import randint
2
3 money = 1000
4 while money > 0:
5 print('你的总资产为:', money)
6 needs_go_on = False
7 while True:
8 debt = int(input('请下注: '))
9 if debt > 0 and debt <= money:
10 break
11 first = randint(1, 6) + randint(1, 6)
12 print('玩家摇出了%d点' % first)
13 if first == 7 or first == 11:
14 print('玩家胜!')
15 money += debt
16 elif first == 2 or first == 3 or first == 12:
17 print('庄家胜!')
18 money -= debt
19 else:
20 needs_go_on = True
21
22 while needs_go_on:
23 current = randint(1, 6) + randint(1, 6)
24 print('玩家摇出了%d点' % current)
25 if current == 7:
26 print('庄家胜')
27 money -= debt
28 needs_go_on = False
29 elif current == first:
30 print('玩家胜')
31 money += debt
32 needs_go_on = False
33
34 print('你破产了, 游戏结束!')
大佬的版本我觉得只有一个不友好的地方就是当输入为空时,会出现一个ValueError的异常,这样我认为不太友好,所以改版了一下,下面是我的版本
1 from random import randint
2 money=1000
3 while money>0:
4 touzhu=0
5 try:
6 touzhu = int(input('你投注的金额是:'))
7 except ValueError:
8 print('输入为空',end=', ')
9 #touzhu=int(input())
10 finally:
11 flag=False
12 if touzhu <= 0:
13 print('投注无效,请重新投注')
14 elif touzhu > money:
15 print('投注超过了你的资产总和,请重新投注')
16 else:
17 shuzi=randint(1,6)+randint(1,6)
18 #print('本次摇出的点数为:%d'%shuzi)
19 cun=shuzi
20 if shuzi==7 or shuzi==11:
21 print('恭喜,你赢了!')
22 money+=touzhu
23 elif shuzi==2 or shuzi==3 or shuzi==12:
24 print('不好意思,你输了!')
25 #zhuangjia+=touzhu
26 money-=touzhu
27 else:
28 flag=True
29 zongtouzhu = 0
30 while flag:
31 jiazhu=-1
32 try:
33 jiazhu=int(input('你的加注金额是:'))
34 except ValueError:
35 print('输入为空',end=', ')
36 finally:
37 zongtouzhu+=jiazhu
38 flag=False
39 if zongtouzhu+touzhu > money:
40 print('加注超过了你的资产总和,请重新加注')
41 zongtouzhu-=jiazhu
42 flag=True
43 elif jiazhu < 0:
44 #可以不加注,则加注为0
45 print('加注无效,请重新加注')
46 flag=True
47 zongtouzhu-=jiazhu
48 else:
49 shuzi=randint(1,6)+randint(1,6)
50 #print('本次摇出的点数为:%d'%(shuzi))
51 if shuzi==7:
52 print('不好意思,你输了!')
53 money-=(touzhu+zongtouzhu)
54 #zhuangjia+=touzhu
55 elif shuzi==cun:
56 print('恭喜,你赢了!')
57 money+=(touzhu+zongtouzhu)
58 else:
59 flag=True
60 #print(money)
61 print('你已经破产,游戏结束!')

本来按照游戏原本的思路去写的,写着写着就想要不第二次以后摇色子来个加注吧,这样更刺激嘛,哈哈哈哈,另这个版本当输入为空时,提示为无效,可以重新投注,游戏继续,
不会出现红色异常的,其他就没什么改进了,想加个界面做成一个完整的摇色子游戏,可是这块还不会,继续加油了
还请路过的大佬指点不足啊
Python学习之Craps赌博游戏篇的更多相关文章
- 【craps赌博游戏】
/* cpaps赌博游戏 说明: 一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2.3 或12,则玩家输,如果和 为其它点数,则记录 ...
- python学习之路网络编程篇(第四篇)
python学习之路网络编程篇(第四篇) 内容待补充
- Python学习之not,and,or篇
Python学习之not,and,or篇 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. 运算符优先级 not > and > or. 举例如下: ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- python应用-craps赌博游戏
from random import randint face1=randint(1,6) face2=randint(1,6) first_point=face1+face2 print('玩家摇出 ...
- python学习之掷骰子游戏
""" 通过学习的python知识,写一个简单的python小游戏 游戏名字:掷骰子比大小 游戏规则: 1.玩家可以选择玩掷几个骰子游戏(默认3个) 2.玩家可以设置双方 ...
- python 学习笔记十三 JQuery(进阶篇)
jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...
- python学习:猜数字游戏
猜数字游戏 系统生成一个100以内的随机整数, 玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束) 6次中,猜对了,玩家赢了. 否则系统赢了 #!/usr/bin/en ...
- Python学习笔记【第六篇】:迭代器、生成器、高阶函数、装饰器
迭代器 迭代器是访问集合元素的一种方式,迭代器从对象的第一个元素开始访问,知道所有元素被访问完成.迭代器只能往前访问,不能通过索引访问. 类型内部使用__iter__()方法转为迭代器,使用__nex ...
随机推荐
- 自定义Nginx返回页面
1.403返回页面 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log noti ...
- webpack 之使用vue
现在,我们希望在项目中使用vuejs,那么必然需要对其有所依赖,所以需要先就行安装 注:因为我们后续是在实际项目中也会使用vue的,所以并不是开发时依赖 npm install vue --save ...
- 风变编程笔记(二)-Python爬虫精进
第0关 认识爬虫 1. 浏览器的工作原理首先,我们在浏览器输入网址(也可以叫URL),然后浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做[请求]紧接着,服务器把你想要的网站数据发送给浏 ...
- C#设置WebBrowser使用Edge内核
原文:C#设置WebBrowser使用Edge内核 1. 问题描述 用C#写了一个小工具, 需要显示网页上的内容, 但WebBrowser使用的是IE内核, 不能很好的展示网页 2. 解决方法 通过一 ...
- Weighted Visibility Graph With Complex Network Features in the Detection of Epilepsy
Their data five data set, 100 single channel of EEG signals, each channel EEG has 4097 data point. t ...
- django 搭建一个投票类网站(三)
之前修改index的视图的代码,工作原理是先试用loader方法加载视图,然后HTTPResponse方法初始化一个HTTPResponse对象并返回给浏览器.对于很多django视图来说,他们的工作 ...
- 关于spring boot集成MQTT
安装 说到mqtt,首先肯定要安装了,安装什么的地址:http://activemq.apache.org/ap...我本地是Windows的环境,所以装的是Windows版本,这里是第一个注意的地方 ...
- 【转载】Pig语法进阶
转自:http://www.cnblogs.com/siwei1988/archive/2012/08/06/2624912.html Pig Latin是一种数据流语言,变量的命名规则同java中变 ...
- spring(五):AOP
AOP(Aspect Oriented Programming) 面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行OOP开发时,都是基于对组件(比如 ...
- Ninject 2.x细说---2.绑定和作用域
Ninject 2.x细说---2.绑定和作用域 转载weixin_33725272 最后发布于2011-11-06 00:03:00 阅读数 9 收藏 Ninject中提供多种接口和实现类的绑 ...