Я пытаюсь сделать две вещи:Создание цикла на основе пользовательского ввода, затем сохранить результат для MUD в Python
сделать петлю в питона, который обеспечивает пользователю подсказку с 4 возможных опции; ввод «1», «2», «3» или что-то еще. Если пользователь выбирает 1,2 или 3, они представлены текстом. Если пользователь вводит что-либо еще, они представлены текстом и подсказкой снова и снова. Это повторяется до тех пор, пока они не войдут в 1,2 или 3.
Я хочу, чтобы затем использовать этот вход от пользователя для использования за пределами этого цикла и продолжить игру.
Мое решение до сих пор: Перед тем, как опубликовать свой код, который я опишу его, я в основном размещен весь код, я хочу в цикле внутри функции без аргументов. Затем я вызываю эту функцию в инструкции else.
Что делает код: Код зацикливается так, как я этого хочу, но я не знаю, как «вырваться» из цикла, чтобы продолжить исходя из того, что вводил пользователь. Я знаю, что это должно быть возвращение, но я думаю, я не знаю, где его разместить.
Что я пробовал: после вызова функции я вошел:
if blackdoor(decision) == "1":
И продолжают оттуда, но это не работает.
Кодекс:
def blackdoor():
print """After having recently died you awake to find yourself standing in an all white room with a black door that seems to go into the sky forever. What do you do?\n1.Touch the door.\n2.Shout at the door.\n3.Stare at the door."""
decision = raw_input("> ")
if decision == "1":
print "You touch the door. It is as cold as ice. You can feel a vibration pulsing from the door through your body.\n"
elif decision == "2":
print "You shout 'Hello?! Is anybody there?!' at the door. But nothing responds. Your voice echoes off in the distance.\n"
elif decision == "3":
print "You stare at the door intensely. You envision it opening when all of a sudden you get the feeling of something staring back at you.\n"
else:
print "You don't follow instructions very well, do you?\n"
blackdoor()
return decision
blackdoor()
Как я могу вытащить вход для решения вне, чтобы использовать его в качестве условия, чтобы игра происходит?
Обратите внимание, что злоумышленник может вызвать функцию черного доступа до тех пор, пока ваш стек не переполнится, что может привести к произвольной вставке кода. –