我正在尝试实现一个不带参数的函数 craps()
,它模拟一场掷骰子游戏,如果玩家赢了则返回 1
,如果玩家输了则返回 0
。
游戏规则:
游戏以玩家掷骰子开始。如果玩家总共掷出 7 或 11,则玩家获胜。如果玩家总共掷出 2.3 或 12,则玩家失败。对于所有其他掷骰值,游戏继续进行,直到玩家再次掷出初始值(在这种情况下玩家获胜)或 7(在这种情况下玩家失败)。
我想我越来越近了,但我还没有到那里,我认为我的 while 循环还没有正常工作。这是我到目前为止得到的代码:
def craps():
dice = random.randrange(1,7) + random.randrange(1,7)
if dice in (7,11):
return 1
if dice in (2,3,12):
return 0
newRoll = craps()
while newRoll not in (7,dice):
if newRoll == dice:
return 1
if newRoll == 7:
return 0
如何修复while循环?我真的找不到它的问题,但我知道它是错误的或不完整的。
最佳答案
您正在递归调用 craps
,但这将不起作用,因为该函数返回 1 或 0。您需要将实际掷骰子添加到您的 while
循环中。
newRoll = random.randrange(1,7) + random.randrange(1,7)
while newRoll not in (7,dice):
newRoll = random.randrange(1,7) + random.randrange(1,7)
if newRoll == dice:
return 1
else:
return 0
关于python - 模拟掷骰子游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16699893/