所以我正在写一个简单的骰子游戏,其中两个玩家扔两个骰子并总结他们的分数,直到总分为100分。我面临的问题是,当其中一个玩家达到100时,游戏允许再扔一次,我怎么阻止它?
import random
a=random.randint(1,6)
b=random.randint(1,6)
c=random.randint(1,6)
d=random.randint(1,6)
ta=0
tb=0
print("Vai vēlaties mest?")
y=input("y/n:")
if y == "y":
print("Jūs uzmetāt:")
print (a,b,"|", a+b+ta)
print("Pretinieks uzmeta:")
print (c,d,"|", c+d+tb)
else:
print ("Jūs zaudējāt")
while ta<=100 and tb<=100:
ta+=a+b
tb+=c+d
a=random.randint(1,6)
b=random.randint(1,6)
c=random.randint(1,6)
d=random.randint(1,6)
print("Vai vēlaties mest?")
y=input("y/n:")
if y == "y":
print("Jūs uzmetāt:")
print (a,b,"|", a+b+ta,)
print("Pretinieks uzmeta:")
print (c,d,"|", c+d+tb)
if y=="n":
print ("Jūs zaudējāt")
elif ta>=100:
print("Jūs uzvarējāt")
elif tb>=100:
print("Jūs zaudējāt")
是的,我知道这可能会写得更短更好,但这就是我们在学校的要求,所以只允许你在这里看到的命令
答案 0 :(得分:1)
使用while ta < 100 and tb < 100:
。
另一个问题是,您在更新a
和d
后计算ta
... tb
的新随机值,但稍后会在同一循环中添加这些新值。这样可以始终打印下一次通过ta和tb的内容,这样看起来你已经超过了100。
作为一个单独的观点,如果不深入研究,我怀疑你可以用import random
替换while ta …
和a = b = c = d = ta = tb = 0
之间的所有内容并获得相同的行为。
最后,您可以缩短随机分配:
(a, b, c, d) = [random.randint(1, 6) for _ in range(4)]