2014-09-09 3 views
0

Я мог бы с некоторой помощью понять, почему моя игра не позволит мне забрать меч. messege ошибка, которая приходит вПриключенческая игра на основе текста на основе Python, нужна помощь

Traceback (самый последний вызов последнего): Файл "", строка 36, в Файл "", строка 1, в NameError: имя 'у' не определен

Вот основная игра, я очень новичок в этом, поэтому простая терминология будет приятной.

print 'You enter a Dungeon with three doors. Do you want to enter door #1 door #2 or door #3?' 
door = raw_input('> ') 

if door == "1": 
    print 'Theres a dragon eating a human, the dragon is massive and looks terrifying' 
    print 'what do you want to do?' 
    print '#1 try to save the human' 
    print '#2 scream and run around' 
    dragon = raw_input('> ') 

    if dragon == "1": 
     print 'You approach the dragon sneakily. After what feel like a thousand years you are finally close to the dragon. You try to step closer. The dragon shifts and crushes you. Well done!' 

    elif dragon == "2": 
     print 'You scream and run around like a chicken with no head. The dragon is not impressed with you. It snorts and engulfs you in flames. You die a painful and worthless death. Well done!' 

elif door == "2": 
    print 'You stare into a deep dark cave.' 
    print 'Oh dear, it seems you have been driven you quite insane.' 
    print '#1. drool' 
    print '#2. scream, drool, and walk forward' 
    print '#3. Understand computer programming completely and get an A plus' 
    insanity = raw_input('> ') 

    if insanity == "1": 
     print 'Your body survives but your mind does not, you drool for eternity!' 

    if insanity == "2": 
     print 'You slip on a mysterious liquid, then fall into a deep sleep, you awake years later at the kiss of a prince. Yay!' 

    if insanity == "3": 
     print 'Congradulations! You passed Programming! Time to graduate and face the real world.. So I guess you actully lost. Sorry.' 

elif door == "3": 
    print ("You emerge into a brighter area and see a small sword lying on the ground") 
    ch1 = str(input("Do you take it? [y/n]:")) 
    if ch1 == "y": 
     print 'You have taken the sword!' 
     stick = 1 

else: 
    print 'You have chosen not to take the sword' 
    sword = 0 
+0

Этот вопрос был задан [много] (http://stackoverflow.com/questions/17413502/nameerror- name-n-is-not-defined-even-but-its-an-input-python), [много] (http://stackoverflow.com/questions/2612948/error-in-python-d-not-defined) раз. Это дубликат [this] (http://stackoverflow.com/questions/2090706/basic-hello-world-in-python-isnt-working) – LondonRob

ответ

6
ch1 = str(input("Do you take it? [y/n]:")) 

Если вы используете input и пользователь «у», то интерпретатор будет искать переменную y и возвращает его значение. У вас нет переменной y, поэтому она падает. Вероятно, вы должны были использовать raw_input, а не input.

ch1 = str(raw_input("Do you take it? [y/n]:")) 

Кстати, raw_input возвращает строку, в любом случае, так что вы на самом деле не нужен str вызова.

ch1 = raw_input("Do you take it? [y/n]:") 
1

Ответ Исправлено:

использование raw_input вместо input

In [32]: ch1 = raw_input("Do you take it? [y/n]:") 
Do you take it? [y/n]:y 

In [33]: ch1 
Out[33]: 'y' 
Смежные вопросы