私は、主な機能が3つのパラメーターを受け入れる、自分で選択する冒険プロジェクトに取り組んでいます。
- 最初のパラメーターは、関数によって出力されます。これは常に、シナリオを説明するテキストを含む変数です
- 2 番目のパラメーターは常に、関数によって出力される現在のシナリオに関連する選択肢を含む変数です。
- 3 番目のパラメーターは、キーがシナリオの選択に対応し、ユーザーの入力と比較される辞書です。キーの値には、次の 3 つの引数が含まれます。
例。
text1 = 'This is the scenario'
text2 = 'These are the choices'
dict2 = {'1':[text2, text1, dict1]}
dict1 = {'1':[text1, text2, dict2]}
def mainloop(scenario, choice, consequence):
print scenario
print choice
answer = raw_input('Please input 1, 2 or 3>>> ')
if answer in consequence.keys():
mainloop(*consequence[answer])
mainloop(text3, text2, dict1)
これは私のプロジェクトを設計するための良い方法だと思いましたが、ディクショナリ パラメータで問題が発生しています。辞書の値には、他の辞書を含む引数のリストが含まれているため、エラーが発生し続けます。
NameError: name 'dict1' is not defined
辞書を定義する順序をフリップフロップすると、同じエラーが発生すると予想されますが、「dict2」が定義されていないだけです。このコンセプトを機能させる方法について何かアドバイスはありますか? それとも、まったく異なるアプローチを取る時が来ましたか?