Помогите пожалуйста с программным кодом. python - Компьютерные вопросы

Вопрос Помогите пожалуйста с программным кодом. python

Регистрация
23 Июн 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
316019118_8d368e39d5d5974ae49335769d75d07c_800.png

 
Регистрация
16 Апр 2013
Сообщения
113
Репутация
0
Спасибо
0
Монет
0
Код нужно предоставлять в полном виде, а также писать свою проблему и то, что тебе требуется на самом деле.
 
Регистрация
17 Фев 2013
Сообщения
115
Репутация
0
Спасибо
0
Монет
0
Я так понял ты пишешь текстовый квест.
Что то мне подсказывает что его надо писать не постоянно через if/elif
 
Регистрация
15 Сен 2013
Сообщения
87
Репутация
-3
Спасибо
0
Монет
0
1)Чтобы что-то случилось/не случилось, удобно использовать флаги с помощью типа Boolean;
Пример: if x>1:
no_step_2 = True
if (x<3) and no_step_2:
//Этот код случится только при совпадении двух условий сразу => только при целом значении 2 2)Не стоит писать в таком формате текстовый квест в принципе, лучше сформировать полноценную функцию шага и хранить прогресс прохождения отдельно, по нему извлекать данные этого этапа и ответы из массива строк (JSON отлично подойдет).
Продемонстрирую простейшую реализацию такого подхода: stages = [
["Вы на краю скалы, совершить прыжок?", "ДаTD1", "НетTD2"],
["Вы превратились в мокрое место у подножия. Зачем?"],
["Ваша жизнь скучна. Но все еще существует", "Я передумал, мне стоит прыгнуть?TD0", "Спуститься той же дорогой, которой пришел сюдаTD3", "Постоять еще немногоTD2"],
["Споткнулись и покатились вниз. Жаль"]
]
k = 0
play = True

def endgame():
print('Игра окончена')
def player(x):
if len(x)>1:
print(x.pop(0))
count = 1
moves = []
for i in x:
td = i.split(sep="TD")
moves.append(int(td[1]))
print(count, '. ', td[0])
count += 1
nextStep = int(input('>>> '))
stage = int(moves[nextStep-1])
return stage
else:
print(x[0])
return 666


while play:

a = stages[k].copy()
k = player(a)
if (k == 666) or (k > len(stages)-1):
play = False
endgame()
В примере TD является разделителем, после которого я указываю шаг, к которому следует перейти в случае выбора данного варианта ответа. Система гибко отобразит любое нужное число ответов и преобразует их в следующий элемент диалога, что позволяет не тратить много времени на создание веток и циклов.И, конечно, здесь все еще многое стоит улучшить. Например, вынести массив stages отдельным файлом, сделать словари вместо строк, обеспечить дополнительные интерфейсные возможности (например, картинки или меню).Отсутствие вариантов ответа в выбранном элементе массива автоматически сделает данный вариант концовкой.
 
Сверху Снизу