我有一个掷两个骰子的代码,对于每个键入“ roll”来掷骰子的玩家。 但是,如果他们没有正确输入“ roll”,则代码将无法正常工作,并且不会一遍又一遍地要求用户再次/正确输入“ roll”,而是会遍历代码,而不验证他们的输入
该代码应要求玩家1将其第一个骰子掷出,然后掷出第二个骰子进入第1轮,然后移入玩家2的两个骰子进行第1轮,然后进入第2轮,直到两个玩家都经过5轮,如果他们键入错误地,它只是要求正确的输入,直到正确为止。
.block {
width: 200px;
height: 20px;
border: 1px solid black;
margin: 20px 20px 0;
transition: opacity 0s 0s, margin .5s 0s, height .5s 0s;
}
.removedBlock {
box-sizing: border-box;
opacity: 0;
margin: 0;
height: 0 !important;
}
答案 0 :(得分:0)
首先,将from random import randint
移至顶部-至少移至while
循环之外。
这不会解决问题,而只是说。
接下来,您希望停止播放器,直到播放器键入“ roll”为止。 在几个地方。
编写函数:
def wait_for_right_input():
while True:
if input("Type 'roll' to roll your 1st dice: ") == 'roll':
break
您现在可以在需要的地方调用它:
from random import randint
for i in range (1,6):
#while True: ## not sure why you have both, and this would make the indents wrong
print()
print("Player 1")
wait_for_right_input() #<-- here
dice1_1 = randint(1,6)
print("Player1 dice 1:", dice1_1)
wait_for_right_input() #<-- here
dice1_2 = randint(1,6)
print("Player1 Dice 2:", dice1_2)
# etc
如果要循环直到输入无效(我猜为while True
和break
的原因),可以更改该函数以返回一个布尔值,指示是否继续。