Python游戏,错误

时间:2015-12-05 20:28:41

标签: python

我试图为游戏编写代码,称为" FizzBu​​zz" 我不知道为什么,但游戏没有正常工作,当我输入正确的号码时,我收到错误消息。我怀疑它与

有关
if b=="x" and c.lower() not in "y":

行,当我改变答案的情况时,我会得到不同的结果。我已经尝试过诊断问题,但没有找到任何成功。

(感谢我如何缩短/提高代码效率)

print("FizzBuzz")
a,b=0,1
while True:
    a+=1
    if a%3==0 and a%5!=0:
        b="Fizz"
    elif a%3!=0 and a%5==0:
        b="Buzz"
    elif a%15==0:
        b="FizzBuzz"
    else:
        b=a
    if a%2!=0:
        print("Comp:",b)
    c=input("You: ")
    if b=="Fizz" and c.lower() not in "f":
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    elif b=="Buzz" and c.lower() not in "b":
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
     elif b=="FizzBuzz" and c.lower() not in ("f","b"):
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    else:
        print("Correct\n")
        a+=1   

2 个答案:

答案 0 :(得分:0)

重新编码后,我让游戏使用了一个额外的功能,使得用户/计算机变得随机(连续2次是Comp的最大值)。

import random
print("FizzBuzz")
a,b=1,1
while True:
    d=random.randint(0,2)
    if d==0 and a==1:
        d=1
    for i in range (d):
        if a%15==0:
            b="FizzBuzz"
        elif a%3==0:
            b="Fizz"
        elif a%5==0:
            b="Buzz"
        else:
            b=a
        print("Comp:",b)
        a+=1
    c=input("You: ")
    if a%15==0 and "zb" not in c.lower():
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    elif a%3==0 and "f" not in c.lower():
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    elif a%5==0 and "b" not in c.lower():
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    elif c.isdigit() == False:
        print("You're Wrong, you got up to",a,"points.\n")
        a=0
    else:
        print("Correct\n")
    a+=1   

答案 1 :(得分:-1)

请尝试以下代码。

在下一种情况下,至少提供一个游戏描述的链接。 链接:https://en.wikipedia.org/wiki/Fizz_buzz

print("FizzBuzz")
a, b = 0, 1
while True:
    a += 1
    print "a = {}".format(a)

    if a % 3 == 0 and a % 5 != 0:
        b = "Fizz"
    elif a % 3 != 0 and a % 5 == 0:
        b = "Buzz"
    elif a % 3 == 0 and a % 5 == 0:
        b = "FizzBuzz"
    else:
        b = a

    if a % 2 != 0:
        print("Comp:", b)
        continue

    c = input("You: ")

    if b == "Fizz" and ("f" not in c.lower()):
        print("1 You're Wrong, you got up to", a, "points.\n")
        a = 0
    elif b == "Buzz" and ("b" not in c.lower()):
        print("2 You're Wrong, you got up to", a, "points.\n")
        a = 0
    elif b == "FizzBuzz" and (("f" not in c.lower()) and ("b" not in c.lower())):
        print("3 You're Wrong, you got up to", a, "points.\n")
        a = 0
    else:
        print("Correct")