[英]Why won't Racing game break when I reach 0 in python
不确定问题。 我让游戏为 2 名跑步者运行一个恒定的随机数,但当我的跑步者达到 0 时它不会中断。我试过翻转 if Cheetah and Rabbit == 0 print"?赢了,但它不起作用。数字只是 go 变成负数
import time
import random
Cheetah = 222
Rabbit = 222
for i in range(222):
a = random.randint(4, 10)
if Cheetah == 0:
print("Cheetah Wins!")
break
if a == 4:
Cheetah = Cheetah - 4
print(Cheetah, "Cheetah")
elif a == 5:
Cheetah = Cheetah - 5
print(Cheetah, "Cheetah")
elif a == 6:
Cheetah = Cheetah - 6
print(Cheetah, "Cheetah")
elif a == 7:
Cheetah = Cheetah - 7
print(Cheetah, "Cheetah")
elif a == 8:
Cheetah = Cheetah - 8
print(Cheetah, "Cheetah")
elif a == 9:
Cheetah = Cheetah - 9
print(Cheetah, "Cheetah")
elif a == 10:
Cheetah = Cheetah - 10
print(Cheetah, "Cheetah")
b = random.randint(3, 10)
if Rabbit == 0:
print("Rabbit Wins")
break
if b == 3:
Rabbit = Rabbit - 3
print(Rabbit, "Rabbit")
elif b == 4:
Rabbit = Rabbit - 4
print(Rabbit, "Rabbit")
elif b == 5:
Rabbit = Rabbit - 5
print(Rabbit, "Rabbit")
elif b == 6:
Rabbit = Rabbit - 6
print(Rabbit, "Rabbit")
elif b == 7:
Rabbit = Rabbit - 7
print(Rabbit, "Rabbit")
elif b == 8:
Rabbit = Rabbit - 8
print(Rabbit, "Rabbit")
elif b == 9:
Rabbit = Rabbit - 9
print(Rabbit, "Rabbit")
elif b == 10:
Rabbit = Rabbit - 10
print(Rabbit, "Rabbit")
这是一个非常具体的条件:
if Cheetah == 0:
如果Cheetah
等于1
并且a
等于4
会发生什么?:
Cheetah = Cheetah - 4
现在Cheetah
等于-3
。 而且由于您只从中减去它,因此它永远不会等于0
。
与其检查值是否正好为零,不如检查它是否小于一:
if Cheetah < 1:
这样,如果它是0
或任何负数,它就会得到满足。
您必须将其与<=
进行比较。 这些 if 语句也已过时。 您可以通过执行以下操作大量缩短代码:
import time
import random
Cheetah = 222
Rabbit = 222
for i in range(222):
a = random.randint(4, 10)
Cheetah = Cheetah - a
print(Cheetah, "Cheetah")
b = random.randint(3, 10)
Rabbit = Rabbit - b
print(Rabbit, "Rabbit")
if Cheetah <= 0:
print("Cheetah Wins!")
break
if Rabbit <= 0:
print("Rabbit Wins")
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.