我试图为游戏编写代码,称为" FizzBuzz" 我不知道为什么,但游戏没有正常工作,当我输入正确的号码时,我收到错误消息。我怀疑它与
有关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
答案 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")