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('你已经破产,游戏结束!')

本来按照游戏原本的思路去写的,写着写着就想要不第二次以后摇色子来个加注吧,这样更刺激嘛,哈哈哈哈,另这个版本当输入为空时,提示为无效,可以重新投注,游戏继续,

不会出现红色异常的,其他就没什么改进了,想加个界面做成一个完整的摇色子游戏,可是这块还不会,继续加油了

还请路过的大佬指点不足啊

posted @ 2019-05-18 17:52  极限之旅  阅读(3962)  评论(0编辑  收藏  举报