Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: kennyhp en 17 de Noviembre de 2011, 05:08:56 PM

Título: Algoritmo de conversación
Publicado por: kennyhp en 17 de Noviembre de 2011, 05:08:56 PM
Hola,
me gustaría crear una aplicación que simule una conversación con el usuario, como hacían en lo en los juegos tipo Monkey Island, que según la opción que elegías el programa te daba opciones.
Hace tiempo leí que hay algoritmos y técnicas para esto, pero no recuerdo como se llaman. He buscado mucho en google, pero como no se muy bien que buscar no encuentro nada... ¿alguna ayuda para empezar a buscar?

Un saludo y gracias!
Título: Re: Algoritmo de conversación
Publicado por: shephiroth en 19 de Noviembre de 2011, 02:14:04 AM
Creo que se llaman máquinas de estados, pero no estoy seguro.

La idea es, para un personaje tienes un puntero de inicio de conversacion, ok? en esa estructura tienes lo q dice nada mas empezar, y las opciones disponibles. Pensemos q sean 3, necesitaras el texto de cada opcion y el indice que se activará al seleccionarla. Podría ser algo como:

1.1 Dame informacion
1.2 Mi nombre es tal
1.3 Adios
1.6 He terminado la quest

2.1 Mejor hablamos de otra cosa
2.4 Hablame mas de tu problema
2.1 No quiero ayudarte

4.5 Acepto tu propuesta
4.1 Me lo tengo que pensar

Aqui los puntos 3 seria terminar la conversacion, el punto 6 seria dar la recompensa.........pero aqui entra la maquina de estados, la opcion 1.2 solo aparece si no hemos aceptado la quest, la 1.6 si tenemos el objeto x,  en el 2.1 podríamos incluso desactivr la quest (dejando al usuario sin poder hacer la quest si la rechaza una vez.

Espero haberte ayudado :)
Título: Re: Algoritmo de conversación
Publicado por: Warchief en 19 de Noviembre de 2011, 02:56:28 AM
http://en.wikipedia.org/wiki/Dialog_tree
A dialog tree or conversation tree...
Título: Re: Algoritmo de conversación
Publicado por: kennyhp en 23 de Noviembre de 2011, 10:32:38 AM
Me lo miraré, gracias!

A ver si encuentro por ahí información sobre arboles de dialogo con C#