Actualmente estoy construyendo un juego de elegir tu propia aventura. Ahora es bastante fácil tener un resultado para cada elección y crear un flujo lineal, pero ¿existe un buen algoritmo para que todas las selecciones anteriores afecten al siguiente resultado? Obviamente, podría almacenar cada selección anterior y tener grandes declaraciones 'IF' para decidir, pero me preguntaba si había una mejor manera.
Parte de mí se pregunta si cada opción debería tener un 'puntaje' y luego lo uso (tal vez con un umbral) para determinar cuál debería ser la siguiente acción y cada acción se agrega al puntaje.
Principalmente estoy haciendo esto en swift / SpriteKit, pero creo que se trata más del concepto que del código en este momento.
En respuesta al comentario de Josh a continuación:
Supongo que todavía estoy en la fase conceptual en este momento, pero cada 'página' sería un objeto personalizado o un archivo json. Estaba pensando en su respuesta (ahora eliminada) y tal vez tener cada opción ENUM como un poco. Entonces cada página podría tener un 'puntaje'. Luego, utilizando las opciones anteriores seleccionadas, determine qué bits se configuran y eso determina qué página. Supongo que me preguntaba si había una solución existente para este problema antes de comenzar a ayudar a decidir cómo debería formatear la 'historia'
Aproximación aproximada al 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
}
Gracias
if
's else
', switch
's case
' y 'con la esperanza de que termines antes de perder la cordura.