Foros - Stratos

Programadores => Inteligencia Artificial => Mensaje iniciado por: tewe76 en 24 de Marzo de 2007, 12:32:55 PM

Título: Algoritmo del juego Sherlock
Publicado por: tewe76 en 24 de Marzo de 2007, 12:32:55 PM
(Lo pongo en IA aunque quizá debería ir en General...)

No sé si alguno conoce el juego de lógica Sherlock ( http://www.kaser.com/sherwin.html )
Yo lo tengo desde hace años y la verdad es que he tenido épocas de bastante enganche :)
Bueno, la cuestión es que desde siempre me habría gustado hacer un clon (un clon mejorado, blablabá, como siempre... ;) ). Porque me daba pena que un juego tan interesante tuviese unos gráficos tan patéticos.

Bueno, ya estoy aquí escribiendo el capítulo 189 de mi biografía :roll:. La cuestión, es que me gustaría saber dónde puedo conseguir el algoritmo que usan para crear los niveles, o si alguno de vosotros tiene alguna sugerencia de cómo se puede hacer. A mí, la idea que más me tira es la de crear el estado final del nivel al azar e ir eliminando casillas según añado las pistas necesarias para colocar dicha casilla. Pero no tengo muy claro si éso servirá, así que estoy abierto a sugerencias.

Ah, por supuesto he buscado en google, pero no encuentro nada :(
Título: Algoritmo del juego Sherlock
Publicado por: tewe76 en 25 de Marzo de 2007, 10:21:41 AM
Como parece que nadie se anima a contestar :roll:, para los que no conozcan el juego y no tengan ganas de probarlo, decir que se basa en el típico pasatiempo de:
-Juan vive en la casa azul
-El dueño de la casa roja tiene un Mercedes
-La casa verde no está a la izquierda de la casa roja
...
-María viaja 2 veces al mes
Y tienes que rellenar una tabla con los datos que faltan, deduciéndolos de las pistas que te han dado.

Lo bueno del Sherlock es que es todo visual, con dibujos, lo cuál lo hace más divertido.

A ver si alguien tiene alguna sugerencia.
Título: Algoritmo del juego Sherlock
Publicado por: Vicente en 25 de Marzo de 2007, 12:18:29 PM
Parece algo de forward chaining, mira en la wikipedia:

http://en.wikipedia.org/wiki/Forward_chaining

A ver si te puede ayudar. Un saludo!

Vicente
Título: Algoritmo del juego Sherlock
Publicado por: tewe76 en 26 de Marzo de 2007, 04:37:58 PM
Hum, sí, por la definición sí que parece ser algo así, pero no tengo ni idea de cómo aplicarlo. Bueno, buscaré info sobre elllo, oye ;)
Gracias :)
Título: Algoritmo del juego Sherlock
Publicado por: Vicente en 26 de Marzo de 2007, 07:25:19 PM
Yo lo he implementado con Lisp en prácticas de IA. Es típico en Lisp, Prolog,... Básicamente tienes un conjunto de hechos y un conjunto de reglas (if X then Y).

Por ejemplo:

Hechos:

- Pepe es Padre de Juan.
- Juan es Padre de Antoñito.

Reglas:

if X Abuelo Z then X Padre Y, Y Padre Z

Con lo cual con los hechos de antes y la regla de abajo se cumple que Pepe es el Abuelo de Antoñito, así que en tu base de datos añadirías un nuevo hecho:

- Pepe es Abuelo de Antoñito.

Y este ciclo de ver si puedes deducir algo nuevo a partir de las reglas y los hechos que tienes se repite hasta que no deduces nada.

Luego de implementar es un poco lioso la verdad... Pero tiene que haber tutoriales por ahí seguro. Un saludo!

Vicente
Título: Algoritmo del juego Sherlock
Publicado por: tewe76 en 26 de Marzo de 2007, 08:27:33 PM
Gracias, Vicente :)
A ver qué saco :roll: