私はプログラミングに非常に慣れていません(この問題を正しく提示していない場合は申し訳ありません)。これは 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()
すべてのアドバイスは大歓迎です。ご協力ありがとうございました。