在此先安利一波大佬的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赌博游戏篇的更多相关文章

  1. 【craps赌博游戏】

    /* cpaps赌博游戏 说明: 一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2.3 或12,则玩家输,如果和 为其它点数,则记录 ...

  2. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  3. Python学习之not,and,or篇

    Python学习之not,and,or篇 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. 运算符优先级 not > and > or. 举例如下: ...

  4. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  5. python应用-craps赌博游戏

    from random import randint face1=randint(1,6) face2=randint(1,6) first_point=face1+face2 print('玩家摇出 ...

  6. python学习之掷骰子游戏

    """ 通过学习的python知识,写一个简单的python小游戏 游戏名字:掷骰子比大小 游戏规则: 1.玩家可以选择玩掷几个骰子游戏(默认3个) 2.玩家可以设置双方 ...

  7. python 学习笔记十三 JQuery(进阶篇)

    jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...

  8. python学习:猜数字游戏

    猜数字游戏   系统生成一个100以内的随机整数, 玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束) 6次中,猜对了,玩家赢了. 否则系统赢了   #!/usr/bin/en ...

  9. Python学习笔记【第六篇】:迭代器、生成器、高阶函数、装饰器

    迭代器 迭代器是访问集合元素的一种方式,迭代器从对象的第一个元素开始访问,知道所有元素被访问完成.迭代器只能往前访问,不能通过索引访问. 类型内部使用__iter__()方法转为迭代器,使用__nex ...

随机推荐

  1. 自定义Nginx返回页面

    1.403返回页面 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log noti ...

  2. webpack 之使用vue

    现在,我们希望在项目中使用vuejs,那么必然需要对其有所依赖,所以需要先就行安装 注:因为我们后续是在实际项目中也会使用vue的,所以并不是开发时依赖 npm install vue --save ...

  3. 风变编程笔记(二)-Python爬虫精进

    第0关  认识爬虫 1. 浏览器的工作原理首先,我们在浏览器输入网址(也可以叫URL),然后浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做[请求]紧接着,服务器把你想要的网站数据发送给浏 ...

  4. C#设置WebBrowser使用Edge内核

    原文:C#设置WebBrowser使用Edge内核 1. 问题描述 用C#写了一个小工具, 需要显示网页上的内容, 但WebBrowser使用的是IE内核, 不能很好的展示网页 2. 解决方法 通过一 ...

  5. 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 ...

  6. django 搭建一个投票类网站(三)

    之前修改index的视图的代码,工作原理是先试用loader方法加载视图,然后HTTPResponse方法初始化一个HTTPResponse对象并返回给浏览器.对于很多django视图来说,他们的工作 ...

  7. 关于spring boot集成MQTT

    安装 说到mqtt,首先肯定要安装了,安装什么的地址:http://activemq.apache.org/ap...我本地是Windows的环境,所以装的是Windows版本,这里是第一个注意的地方 ...

  8. 【转载】Pig语法进阶

    转自:http://www.cnblogs.com/siwei1988/archive/2012/08/06/2624912.html Pig Latin是一种数据流语言,变量的命名规则同java中变 ...

  9. spring(五):AOP

    AOP(Aspect Oriented Programming) 面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行OOP开发时,都是基于对组件(比如 ...

  10. Ninject 2.x细说---2.绑定和作用域

    Ninject 2.x细说---2.绑定和作用域 转载weixin_33725272 最后发布于2011-11-06 00:03:00 阅读数 9  收藏   Ninject中提供多种接口和实现类的绑 ...