使用计数器在 python 中进行掷骰子游戏,但不会超过 1

Making a craps game in python using a counter, but it won't count past 1

我把它编辑下来了。 testCraps(number) 所做的是调用一个名为 quietCraps() 的函数,该函数 returns 1 表示获胜,0 表示失败。 testCraps(number) 应该 运行 quietCraps() 的次数等于 (number),如果 1 为 returned,则向 winCoutner 加 1,如果 0 为 [=],则向 lossCounter 加 1 20=]编辑。

def testCraps(number):
    winCounter = 0
    lossCounter = 0
    for test in range(number): 
        testGame = quietCraps(value1 = 1)
        if str(test) == "1":
            winCounter = winCounter + 1
        elif str(test) == "0":
            lossCounter = lossCounter + 1
    print("The amount of wins is " + str(winCounter))
    print("The amount of losses is " + str(lossCounter))

澄清一下,赢了会 return 1,输了会 return 0。我知道 testCraps(number) 中的计数器正在计数,但它只会上升两个计数器都为 1。例如:

testCraps(5)
0
1
1 
1
1
The amount of wins is 1
The amount of losses is 1

我相信答案很简单,但我不知所措。谁能帮我?如果我的 post 做错了什么,我很抱歉。这是我第一次在这里提问。

for test in range(number): 
    testGame = quietCraps(value1 = 1)
    if str(test) == "1":
        winCounter = winCounter + 1
    elif str(test) == "0":
        lossCounter = lossCounter + 1

这里,winCountertest == 1时递增。这种情况发生一次,因为 for 循环刚刚从 0 上升到 number,因此两个计数器的结果都是 1。您是否正在尝试检查 testGame?它的值为 None 因为 quietcraps() returns 什么都没有。

def quietCraps():
    crapsTotal = craps(2) 
    return crapsTotal

这样 quietCraps() returns 一个值,可以检查。此外,不需要 value1 参数,因为它未被使用。同样不用写craps(value1 = 2,直接写craps(2)

for test in range(number): 
    testGame = quietCraps(value1 = 1)
    if testGame == 1:
        winCounter = winCounter + 1
    elif testGame == 0:
        lossCounter = lossCounter + 1

无需将结果转换为字符串,只需检查数字是否匹配。

P.S

if value1 == 1 == True:

只需将此更改为 if value1 == 1。无需检查是否为真,因为 它正在检查的就是这个!