0

私はプログラミングに非常に慣れていません(この問題を正しく提示していない場合は申し訳ありません)。これは LPTHW 演習 36 からのものです。

私のエラー:

Traceback (most recent call last):
  File "ex36.py", line 329, in <module>
    start()
  File "ex36.py", line 149, in start
    arena()
  File "ex36.py", line 161, in arena
    if stealth == True:
NameError: global name 'stealth' is not defined

私の仮定: 「ステルス」は前の関数 start() で定義されていると思っていましたが、その定義は arena() に引き継がれませんでした。どうすれば修正できますか? また、ある関数の「ステルス」が別の関数に引き継がれないのはなぜですか?

マイ コード (テキストベースのゲーム進行中):

    from sys import argv

    script, enemy = argv
    ...
    def start():
        print """ Choose a skill to train in
        """
        stealth = False
        gun = False
        knife = False
        heal = False
        skill = raw_input("> ")

        if 'gun' in skill:
            print """
            """
            gun = True
            skill = gun
        ...
        else:
            dead()

        arena()

    def arena():
        print """ You enter the arena.  Will you:
        hide, hunt for food, or search for water?
            """

        path = raw_input("> ")

        if "hide" in path:
            print """ Hide
            """

            if stealth == True:
                print """ Witness
                """
                witness()
            else:
                battle()
        ...
        else:
            print """ Dead
            """
            dead()
start()

すべてのアドバイスは大歓迎です。ご協力ありがとうございました。

4

1 に答える 1