import random
dice1=random.randint (1,6)
dice2=random.randint (1,6)
strengthone = int(input ("Player 1, between 1 and 10 What do you want your characters strength to be? Higher is not always better."))
skillone = int(input ("Player 1, between 1 and 10 What do you want your characters skill to be? Higher is not always better."))
if strengthone > 10:
print ("Incorrect value")
else:
print ("Good choice.")
if skillone > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
strengthtwo = int(input ("Player 2, between 1 and 10 what do you want your characters strength to be? Higher is not always better."))
skilltwo = int(input ("Player 2, between 1 and 10 what do you want your characters skill to be? Higher is not always better."))
if strengthtwo > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
if skillone > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
strengthmod = strengthone - strengthtwo
skillmod = skillone - skilltwo
strengthmodone = strengthone - strengthtwo
skillmodone = skillone - skilltwo
strengthmodtwo = strengthone - strengthtwo
skillmodtwo = skillone - skilltwo
print ("Player 1, you rolled a", str(dice1))
print ("Player 2, you rolled a", str(dice2))
while True:
if dice1 == dice2:
print ("")
if dice1 > dice2:
strengthmodone = strengthmod + strengthone
strengthmodone = strengthmod + strengthone
if dice2 > dice1:
strengthmodtwo = strengthmod + strengthtwo
skillmodtwo = skillmod + skilltwo
if dice1 < dice2:
strengthmodone = strengthmod - strengthone
skillmodone= skillmod - skillone
if dice2 < dice1:
strengthmodtwo = strengthmod - strengthtwo
skillmodtwo = skillmod - skilltwo
break
if strengthmodone == 0:
print ("Player one dies, well done player two. You win!")
if strengthmodtwo == 0:
print ("Player two dies, well done player one. You win!")
if strengthmodone== 0:
print ("Player one dies, well done player two. You win!")
if strengthmodtwo == 0:
print ("Player two dies, well done player one. You win!")
当程序到达while循环时,程序就结束了。我不知道为什么以及如何解决这个问题,有什么想法吗?而且我仍然不确定如何正确使用循环,所以我可能完全错误地使用它,请让我知道我做错了什么以及如何解决这个问题。
最佳答案
您的 while True:
循环中有一个break
,它总是执行:
while True:
if dice1 == dice2:
# [ ... ]
# [ ... ]
# more `if` statements
# [ ... ]
if dice2 < dice1:
# [ ... ]
break
删除它或将其移动到 if
语句中。
你的下一个问题是你永远不会在循环中重新掷骰子。您需要在游戏的每一轮中不断为 dice1
和 dice2
分配新的随机值。
关于python - 程序在while循环处结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19954095/