骰子游戏额外转弯

时间:2017-10-23 09:18:24

标签: python python-3.x

所以我正在写一个简单的骰子游戏,其中两个玩家扔两个骰子并总结他们的分数,直到总分为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")

是的,我知道这可能会写得更短更好,但这就是我们在学校的要求,所以只允许你在这里看到的命令

1 个答案:

答案 0 :(得分:1)

使用while ta < 100 and tb < 100:

另一个问题是,您在更新ad后计算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)]