Дружище, это кошмар. И в нём виноват не ты, а составители задания, которые обрекли тебя это слепить.
Эта игра состоит в том чтобы пройти по дереву сюжетов, делая выбор той или иной ветви.
Умеешь ли ты строить дерево? Умеешь ли обходить? Умеешь ли хранить/редактировать? Нет, нет, нет. И ты выкрутился, как мог. Молодец, а теперь смотри
Хранить дерево будем в файле 'kolobok.yaml':
intro: "Испеки мне колобок"
choise:
- "по сусекам поскреби":
intro: "испекла. Что сделал колобок"
choise:
- "покатился с окна на заваленку":
intro: "встретил зайца"
choise:
- "я тебе песенку спою":
intro: "спел песенку, а навстречу волк"
choise:
- "я уже чёрствым стал":
final: "Волк поломал зубы"
- "отнеси к дедушке с бабушкой":
final: "Волк бросил колобка в речку"
- "я тебе песенку спою":
final: "колобок встретил медведя"
- "попробуй меня догнать":
intro: "прошмыгнул между ног зайца"
- "Не успел ответить":
final: "заяц его съел"
- "скатился на лавку"
- "остался остывать на окне"
- "свари мне каши":
final: "Старуха сварила кашу"
- "пойду на базар":
final: "медведь его съел"
Движок мог бы быть примерно таким:
import yaml
with open('kolobok.yaml') as f:
root = yaml.load(f, Loader=yaml.FullLoader)
def dfs(d):
if 'intro' in d:
print(d['intro'])
if 'final' in d:
print(d['final'])
exit(0)
if 'choise' in d:
print('выберите цифру ответа')
choise = d['choise']
for i, p in enumerate(choise, 1):
print(i, next(iter(p)) if type(p) is dict else p)
while True:
try:
answer = input()
i = int(answer) - 1
if not 0 <= i < len(choise):
raise ValueError
except ValueError:
print(f'ответ "{answer}" не поддерживается, пробуй ещё:')
p = choise[i]
if type(p) is dict:
dfs(p.popitem()[1])
else:
print(p)
exit(0)
dfs(root)
Сколь-нибудь долгий путь, 4 сцены - лишь по ветке 1 -> 1 -> 1 -> 1, вбивать всё недосуг.
Про YAML, DFS и прочие штуки можно найти в интернете.