我正在處理一個任務,涉及創建一個分支故事線的文本冒險。文本冒險與分支故事情節類方法
它的工作原理是這樣的:
- 等級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」參數,但是我很難找出如何跟進這個問題。
我希望它的工作方式是在第一級選擇A,然後程序將打印與「level2_A」相關的提示和選擇。請記住,這將不得不在後面的級別中支持大量單獨的選擇和提示,所以我試圖找到一種有效的方法來管理分支故事情節。
讓我知道如果有什麼不太明白..
非常感謝!
Python中的典型方式對事物聯想到一起是使用一本字典。在這種情況下,'add_choices()'方法可以通過每次被調用時(假設一個'self.mapping_dict = {}'在執行類似'self.mapping_dict [選擇] = next_level'添加到這樣的詞典中的條目類'__init __()'方法最初創建一個空字典)。 – martineau