Python симулятор игры в кости, почему он работает без остановки? - PullRequest
1 голос
/ 27 мая 2020
import random

print("This is a dice simulator.")

x = "y"

while x == "y":
    number = random.randint(1,6)

    if number == 1:
        print("------------")
        print("|          |")
        print("|     0    |")
        print("|          |")
        print("------------")

    if number == 2:
        print("------------")
        print("|         0|")
        print("|          |")
        print("|0         |")
        print("------------")

    if number == 3:
        print("------------")
        print("|         0|")
        print("|     0    |")
        print("|0         |")
        print("------------")

    if number == 4:
        print("------------")
        print("|0        0|")
        print("|          |")
        print("|0        0|")
        print("------------")

    if number == 5:
        print("------------")
        print("|0        0|")
        print("|     0    |")
        print("|0        0|")
        print("------------")

    if number == 6:
        print("------------")
        print("|0        0|")
        print("|0        0|")
        print("|0        0|")
        print("------------")

x = input("Press y to roll again")

Я не могу понять, почему мой код зацикливается без конца.

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Ну, while x == "y": ваш x установлен на "y" в начале перед l oop и никогда не изменяется во время l oop.

Вы можете изменить свою последнюю строку на внутри на l oop после операторов print.

Исправить очень просто:

измените последнюю строку с:

x = input("Press y to roll again")

на

    x = input("Press y to roll again")
1 голос
/ 27 мая 2020

x = input("Press y to roll again") запрашивается за пределами while l oop, поэтому код никогда не достигается. Добавьте его в while:

import random

print("This is a dice simulator.")

x = "y"

while x == "y":
    number = random.randint(1,6)

    if number == 1:
        print("------------")
        print("|          |")
        print("|     0    |")
        print("|          |")
        print("------------")

    if number == 2:
        print("------------")
        print("|         0|")
        print("|          |")
        print("|0         |")
        print("------------")

    if number == 3:
        print("------------")
        print("|         0|")
        print("|     0    |")
        print("|0         |")
        print("------------")

    if number == 4:
        print("------------")
        print("|0        0|")
        print("|          |")
        print("|0        0|")
        print("------------")

    if number == 5:
        print("------------")
        print("|0        0|")
        print("|     0    |")
        print("|0        0|")
        print("------------")

    if number == 6:
        print("------------")
        print("|0        0|")
        print("|0        0|")
        print("|0        0|")
        print("------------")

    x = input("Press y to roll again")

Протестируйте онлайн!

...