2017-07-05 73 views
-3

我是一名新的Python學習者,我正在閱讀Zed Shaw的書,名爲: 學習python hardway 我很好地遵循指示並進行學習演習。 最近,我嘗試自己做一個小遊戲,但我卡住了,我需要一點點幫助 這是我的腳本:Python發行製作遊戲

from sys import exit 

def starting(): 
    print "Welcome to the abyss of dark" 
    print "The game is about choosing" 
    print "if you lose you die if you win you live" 

    choose_door = raw_input("> ") 

    if "1" in choose_door or "door 1" or "D1" or "d1": 
     no_weapon() 
    elif "2" in choose_door or "door 2" or "D2" or "d2": 
     Weapon_room() 
    elif "3" in choose_door or "door 3" or "D3" or "d3": 
     shortcut() 
    elif "4" in choose_door or "door 4" or "D4" or "d4": 
     princess_room() 
    elif "5" in choose_door or "door 5" or "D5" or "d5": 
     princess_room() 
    elif "6" in choose_door or "door 6" or "D6" or "d6": 
     gards_room() 
    else: 
     "7" in choose_door or "door7" or "D7" or "d7" 
     suicide_room() 

start() 

def map(): 
    print """" 
    |------------------------------------------------------------------------------------| 
    | shortcut  D|room of the | room of the|          | 
    |  to D4  O|princess | gards  | S U I C I D E  R O O M   | 
    |    O|   |   |          | 
    |    R|   |   |          | 
    |    4|   |   |          | 
    |-----DOOR 3---|------DOOR 5-------DOOR 6---------------------DOOR 7----------------| 
    |Weapon ROOM |                  | 
    |   | DOOR 2    YOUR           | 
    |   |       ARE          | 
    |   |         HERE         | 
    |------------|                  | 
    |No Weapon | DOOR 1                | 
    |   |                  | 
    |------------|------------------------------------------------------------------------ 

    """ 
    start() 

def no_weapon(): 
    print "You've choosed to continue with no Weapons" 
    print "What a BRAVE PLAYER!" 
    print "Choose your door" 
    print "3 , 5 , 6 , 7" 
    no_weapon_door = raw_input("> ") 
    if no_weapon_door == "3": 
     shortcut 
    elif no_weapon_door == "5": 
     princess_room 
    elif no_weapon_door == "6": 
     gards_room 
    else: 
     suicide_room 



def Weapon_room(): 
    print "You are armed now" 
    print "Which door you choose type just the number" 
    print "Door 3 or Door 4" 
    Weapon_room_door = raw_input("> ") 
    if Weapon_room_door == "3": 
     shortcut 
    else: 
     princess_room 

def shortcut(): 
    princess_room 

def princess_room(): 
    print "You won" 

def gards_room(): 
    print "fight with gards" 
    print "Yes or No" 
    fighting = raw_input("> ") 
    if fighing == "Yes": 
      princess_room 
    else: 
     fighting == "No" 
     lost 
def suicide_room(): 
    print "Die in peace" 
    lost 

def lost(): 
    print "You lost" 
    print "If you want to reapeat Press R if you wanna exit tye E" 
    losing = raw_input ("> ") 
    if losing == "R": 
     start() 
    else: 
     exit() 

對我來說我覺得一切我寫的,因爲它應該是,但是當我運行我的腳本我得到一個錯誤:

Traceback (most recent call last): 
    File "newgame.py", line 26, in 
    start() 
NameError: name 'start' is not defined

無法弄清楚 請幫我謝謝你

+0

它看起來像函數被稱爲'starting()',但你正在運行'start()',因此只需將你的第三行改爲'def start():'。 – GrumpyCrouton

回答

2

你或許應該修正你的代碼的格式,但我相信你的意思是把啓動( )inst start()的ead,因爲您沒有名爲start()的方法。

0

實際上,你可以重命名啓動功能爲「啓動」,因爲你調用start FUNC

0

你缺少調用starting()功能,代替你誤稱爲start()這是在無處定義整個計劃。

因此,要麼將程序中的第1個函數命名爲start(),要麼將名爲start()的3次重命名爲starting()