题:
Craps赌博游戏
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
玩家再次摇色子 如果摇出7点 庄家胜
如果摇出第一次摇的点数 玩家胜
否则游戏继续 玩家继续摇色子
玩家进入游戏时有1000元的赌注 全部输光游戏结束
--------------------------------------------------------------
分析:
1.有1000元赌资,当赌资输完的时候游戏结束
2.每次赢或输都不知到划多少,那么把这个问题交给赌客吧, 每次自定义赌多少钱 但是 debt > 0 and debt <= gambling
3.赢了就给赌资增加,输了减少 gambling = gambling + debt or gambling = gambling -debt
4摇两个骰子,点数应为二者之和
5.如果第一次摇出来为 7 点或者11点,玩家胜 + debt,如果摇出来 2点 3点 12点则庄家胜 - debt
6.如果没有以上点数,第一次如果不决胜负就开始继续,摇骰子 如果摇出7点,庄家胜 - debt,如果摇出 第一次的值 玩家胜 + debt
实现代码:
gambling = 1000
while gambling > 0:
print('您的赌资是:%d' %(gambling))
#是否进行下一次摇骰子
needs_again = False
while True:
debt = int(input("这次您赌多少:"))
if debt > 0 and debt <= gambling:
break
first = randint(1, 6) + randint(1, 6)
print('您摇出了%d点' %(first))
if first == 7 or first == 11:
gambling += debt
print('您赢了%d元!' %(debt))
elif first == 2 or first == 3 or first == 12:
gambling -= debt
print('您输了%d元!' %(debt))
else:
needs_again = True
#开始下一次摇骰子,直至出胜负
while needs_again:
current = randint(1, 6) + randint (1, 6)
print('您摇出了%d' %(current))
if current == 7:
gambling -= debt
print('您输了%d元!' % (debt))
needs_again = False
elif current == first:
gambling += debt
print('您赢了%d元!' %(debt))
needs_again = False
print('你输的裤衩都不剩了!哈哈哈')
运行结果截图示例: