【发布时间】:2019-03-15 15:53:34
【问题描述】:
我正在尝试实现不带参数的函数 crap(),模拟一场掷骰子游戏,如果玩家获胜则返回 1,如果玩家失败则返回 0。
规则如下:游戏开始时玩家掷出一对标准的六面骰子。如果玩家总共掷出 7 或 11,则玩家获胜。如果玩家总共掷出 2、3 或 12,则玩家输。对于所有其他掷骰值,玩家将重复掷这对骰子,直到她再次掷出初始值(在这种情况下她赢)或 7(在这种情况下她输了)
这是我得到的代码。我一直得到 0,但我找不到错误的地方。
def craps():
''' () -> int
Return 1 if the player won and 0 if the player lost.
>>> craps()
0
>>> craps()
1
>>> craps()
1
'''
import random
dice = random.randrange(1, 7) + random.randrange(1, 7)
if dice == 2 or dice == 3 or dice == 12:
return 0
elif dice == 7 or dice == 11:
return 1
else:
dice1 = random.randrange(1, 7) + random.randrange(1, 7)
while dice1 != dice or dice1 != 7:
dice1 = random.randrange(1, 7) + random.randrange(1, 7)
if dice1 == dice:
return 1
elif dice1 == 7:
return 0
当我调用 crap() 时,我总是得到 0。
【问题讨论】:
-
您已经说过“这是代码”但没有发布。这很难提供帮助。
-
这是一个函数吗(你还没有发布
def)?尝试在设置时打印值dice和dice1。 -
如果你在函数之外
import random,有什么变化吗? -
@doctorlove:这行不通。也许我应该将while循环中的“或”更改为“和”。
-
@doctorlove:我认为它现在有效。我开始得到 1 和 0。
标签: python-3.x while-loop