Python 主谋游戏不起作用

Python 主谋游戏不起作用,python,loops,Python,Loops,我正在尝试创建一个应用程序来玩智囊团游戏,但我遇到了一个问题,我不太清楚到底出了什么问题。每次我运行检查以查看猜测的整数是否正确时,它要么返回1或0的值(从不返回2、3或4)。如果您能帮助解决此问题,我们将不胜感激注意:打印(a、b、c、d)和(r、q、h、l)的行纯粹用于故障排除目的 import random dummy = True a=int(random.random()*10) b=int(random.random()*10) c=int(random.random()*10) d

我正在尝试创建一个应用程序来玩智囊团游戏,但我遇到了一个问题,我不太清楚到底出了什么问题。每次我运行检查以查看猜测的整数是否正确时,它要么返回1或0的值(从不返回2、3或4)。如果您能帮助解决此问题,我们将不胜感激注意:打印(a、b、c、d)和(r、q、h、l)的行纯粹用于故障排除目的

import random
dummy = True
a=int(random.random()*10)
b=int(random.random()*10)
c=int(random.random()*10)
d=int(random.random()*10)
print(a,b,c,d)
while dummy == True:
        f=0
        if a == 0 or b ==0 or c == 0 or d == 0:
                #run program again
                dummy = False
        print("Enter your four guesses, separated by commas.")
        guess=input()
        t,v,w,y=guess.split(",")
        print(t,v,w,y)
        r=int(t)
        q=int(v)
        h=int(w)
        l=int(y)
        if r==a:
                f+=1
        elif q==b:
                f+=1
        elif h==c:
                f+=1
        elif l==d:
                f+=1
        print(f)
        if f==4:
                dummy = False
                print("Well done!")

您使用的是
elif
,它仅在前面的条件为false时运行(它是对“else if”的删节)。您可能需要单独的
if
s

    if r==a:
            f+=1
    if q==b:
            f+=1
    if h==c:
            f+=1
    if l==d:
            f+=1

您的代码在递增时停止,因此不能大于1。

问题是,您使用的是
elif
。一旦其中一个条件为真,它就会跳过其他条件。如果要运行所有检查,请将
elif
s更改为
if
s

您必须使用if而不是elif

问题是您必须用if替换elif,因为如果if语句i为true,它将不会运行其余的elif:

import random
dummy = True
a=int(random.random()*10)
b=int(random.random()*10)
c=int(random.random()*10)
d=int(random.random()*10)
print(a,b,c,d)
while dummy == True:
        f=0
        if a == 0 or b ==0 or c == 0 or d == 0:
                #run program again
                dummy = False
        print("Enter your four guesses, separated by commas.")
        guess=input()
        t,v,w,y=guess.split(",")
        print(t,v,w,y)
        r=int(t)
        q=int(v)
        h=int(w)
        l=int(y)
        if r==a:
                f+=1
        if q==b:
                f+=1
        if h==c:
                f+=1
        if l==d:
                f+=1
        print(f)
        if f==4:
                dummy = False
                print("Well done!")

你需要独立的检查
elif
在这里是错误的。