分岐ストーリーラインを使ったテキストアドベンチャーの作成に関する作業に取り組んでいます。分岐のストーリーラインを使ったテキストアドベンチャーのクラスメソッド
それはこのように動作します:
- レベル1は1つのプロンプトと3つの選択肢
- レベル2は3つのプロンプトと9つの選択肢を持っている
- レベル3は9つのプロンプトと27個の選択肢
- レベル4を持っています27のプロンプトと81の選択肢を持っています
それぞれの選択肢によって、次のレベルで3つの選択肢が新たに追加されました。
私はこのような設定の基本的なクラスがあります。
class Level:
def __init__(self,level_num, level_prompt):
self.level_num = level_num
self.level_prompt = level_prompt
self.choices = []
def add_choices(self, choices, next_branch):
self.choices.append(choices)
self.next_branch = next_branch
def print_situation(self):
print("Level " + str(self.level_num))
print(self.level_prompt)
print("[A] " + self.choices[0])
print("[B] " + self.choices[1])
print("[C] " + self.choices[2])
をそして、私はこのようにオフに開始レベルを初期化しています:
level1 = Level(1, 'PROMPT HERE')
level1.add_choices('CHOICE A', '2_A')
level1.add_choices('CHOICE_B', '2_B')
level1.add_choices('CHOICE_C', '2_C')
level2_A = Level(2, 'PROMPT HERE')
level2_A.add_choices('CHOICE A', '3_A1')
level2_A.add_choices('CHOICE_B', '3_A2')
level2_A.add_choices('CHOICE_C', '3_A3')
level2_B = Level(2, 'PROMPT HERE')
level2_B.add_choices('CHOICE A', '3_B1')
level2_B.add_choices('CHOICE_B', '3_B2')
level2_B.add_choices('CHOICE_C', '3_B3')
level2_C = Level(2, 'PROMPT HERE')
level2_C.add_choices('CHOICE A', '3_C1')
level2_C.add_choices('CHOICE_B', '3_C2')
level2_C.add_choices('CHOICE_C', '3_C3')
私はそれぞれを関連付ける方法を考え出すのトラブルを抱えています次の「レベル」での選択。私は "add_choices"メソッドで "next_branch"引数を持っていますが、それをフォローアップする方法を理解するのに問題があります。
どのように動作させたいのですが、レベル1ではAを選択するので、プログラムは "level2_A"に関連するプロンプトと選択肢を表示します。これは後のレベルで別々の選択肢とプロンプトを大量にサポートする必要があることを念頭に置いてください。そのため、分岐線を効率的に管理する方法を見つけようとしています。
何かが明確でない場合は、私に教えてください...
どうもありがとう!
Pythonの典型的な方法は、辞書を使用することです。この場合、 'add_choices()'メソッドは、呼び出されるたびに(self.mapping_dict = {} 'が実行されたと仮定して)' self.mapping_dict [choices] = next_level'のようなものでそのような辞書にエントリを追加することができます最初に空の辞書を作成する '__init __()'メソッド) – martineau