В настоящее время я создаю собственную приключенческую игру. Теперь достаточно просто иметь один результат для каждого выбора и создавать линейный поток, но есть ли хороший алгоритм для того, чтобы все предыдущие выборы влияли на следующий результат? Я мог бы, очевидно, хранить каждый предыдущий выбор и иметь большие «IF» заявления, чтобы решить, но я подумал, есть ли лучший способ?
Часть меня задается вопросом, должен ли каждый вариант иметь «счет», и затем я использую его (возможно, с порогом), чтобы определить, каким должно быть следующее действие, и каждое действие добавляется к результату.
Я в основном делаю это в swift / SpriteKit, но я думаю, что это больше о концепции, чем код на данном этапе.
В ответ на комментарий Джоша ниже:
Я полагаю, что на данный момент я все еще нахожусь в концептуальной фазе, но каждая «страница» будет либо пользовательским объектом, либо файлом json. Я думал о вашем ответе (теперь удален) и, может быть, немного выбрал каждый вариант ENUM. Тогда каждая страница может иметь «оценку». Затем, используя предыдущие выбранные опции, определите, какие биты установлены, и это определяет, какую страницу. Я думаю, я просто подумал, было ли существующее решение этой проблемы, прежде чем я начал почти помогать решить, как мне отформатировать «историю»
Грубое предположение в формате:
{ "text":"You arrive in the dungeon and there are 2 doors",
"options":[
1: "Go left",
2: "Go Right"
],
"score" : 0 // first page
}
{"text" "You went left and meet a dragon",
"options":[
0: "Game over, you were eaten" // something to handle game over
],
"score" : 1
}
{"text" "You meet a mushroom who tells you the princess is in another castle",
"options":[
4: "Give up, game over", // something to handle game over
8: "Jump down the pipe"
],
"score" : 2
}
Спасибо
if
символами else
«s», switch
«s» и case
«надеется», что вы закончите, прежде чем потеряете здравомыслие.