Atualmente, estou construindo um jogo de aventura para você escolher. Agora é fácil o suficiente ter um resultado para cada escolha e criar um fluxo linear, mas existe um bom algoritmo para que todas as seleções anteriores afetem o próximo resultado? Obviamente, eu poderia armazenar todas as seleções anteriores e ter grandes declarações 'SE' para decidir, mas me perguntei se havia uma maneira melhor.
Parte de mim se pergunta se cada opção deve ter uma 'pontuação' e então eu a uso (talvez com um limite) para determinar qual deve ser a próxima ação e cada ação será adicionada à pontuação.
Primeiramente, estou fazendo isso no swift / SpriteKit, mas acho que é mais sobre o conceito do que o código neste momento.
Em resposta ao comentário de Josh abaixo:
Suponho que ainda estou na fase conceitual no momento, mas cada 'página' seria um objeto personalizado ou um arquivo json. Eu estava pensando em sua resposta (agora removida) e talvez tendo cada opção ENUM um pouco. Então cada página pode ter uma 'pontuação'. Em seguida, usando as opções anteriores selecionadas, determine quais bits estão definidos e que determina qual página. Acho que me perguntei se havia uma solução existente para esse problema antes de começar a quase ajudar a decidir como eu deveria formatar a 'história'.
Palpite aproximado no formato:
{ "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
}
obrigado
if
's else
', switch
's case
' e 's, esperando que você termine antes de perder a sanidade.