2名玩家的骰子骰输入

时间:2018-12-13 10:03:40

标签: python loops dice

我有一个掷两个骰子的代码,对于每个键入“ 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;
}

1 个答案:

答案 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 Truebreak的原因),可以更改该函数以返回一个布尔值,指示是否继续。

相关问题