2011-12-27 25 views
8

Hola me estaba jugando este juego "Círculo del gato" http://www.gamedesign.jp/flash/chatnoir/chatnoir.htmlJuego clásico "Circunde el gato" algoritmo?

Me preguntaba qué algoritmo hace que el gato "inteligente"? ¿Cómo decide el gato qué dirección tomar?

Una solución que me viene a la mente es la primera búsqueda de amplitud e ir en la dirección con la ruta de salida más corta.

Sólo estoy inquisitivo aquí. :-)

+0

Creo que solo usa la respiración primero buscar nada más –

Respuesta

2

Creo que simplemente está utilizando Djikstra's algorithm (o equivalente), que es un sola fuente algoritmo de ruta más corta no ponderado que es bastante bueno para resolver este problema en particular.

El gato es fácilmente capturable por jugar unos cuantos puntos por delante - la "inteligencia" es fácil engañar :) no parece que el gato para dar cuenta de las baldosas no bloqueantes jugado por delante de él en una potencial ruta , lo que me hace creer que es solo un simple cálculo de distancia no ponderado.

Cuando el gato queda atrapado, parece elegir una dirección aleatoria, lo que también puede ocurrir en una corbata.

El gato podría posiblemente hacerse "más inteligente" agregando un peso a ciertas fichas (como las adyacentes a las fichas de bloqueo).

Happy coding.

+5

En primer lugar, Dijkstra no es un algoritmo de ruta más corta no ponderado, lo dice ahí mismo en su enlace. En segundo lugar, no necesita ni Dijkstra ni A *, porque este problema se reduce a un problema de gráfico no ponderado. No es realmente relevante, pero es interesante: siempre que el gato esté como máximo a 4 movimientos de distancia de la salida, nunca podrás atraparlo si juegas bien. Cualquier cosa más (que es el caso del juego vinculado) y siempre puedes ganar, sin importar lo que haga el gato. Es por eso que crees que superas la "inteligencia"; de hecho, te engañó las primeras veces, ya que siempre puedes ganar. – IVlad