En primer lugar, esto es IA para PacMan y no los fantasmas .
Estoy escribiendo un fondo de pantalla en vivo de Android que reproduce PacMan alrededor de sus iconos. Si bien admite sugerencias de los usuarios mediante toques en la pantalla, la mayoría del juego será jugado por una IA. He terminado el 99% con toda la programación del juego, pero la IA para el propio PacMan sigue siendo extremadamente débil. Estoy buscando ayuda para desarrollar una buena IA para determinar la próxima dirección de viaje de PacMan.
Mi plan inicial fue este:
- Inicialice un contador de puntaje para cada dirección con un valor de cero.
- Comience en la posición actual y use un BFS para atravesar hacia afuera en las cuatro direcciones iniciales posibles agregándolas a la cola.
Saque un elemento de la cola, asegúrese de que aún no se haya "visto", asegúrese de que sea una posición válida en el tablero y agregue a las direcciones iniciales correspondientes un valor para la celda actual basado en:
- Tiene un punto: más 10
- Tiene un poder: más 50
- Tiene una fruta: más el valor de la fruta (varía según el nivel)
- Tiene un fantasma asustado: más 200
- Tiene un fantasma que viaja hacia PacMan: resta 200
- Tiene un fantasma viajando lejos de PacMan: no hagas nada
- Tiene un fantasma que viaja perpendicular: resta 50
- Multiplique el valor de la celda por un porcentaje basado en el número de pasos a la celda, cuantos más pasos desde la dirección inicial, más cerca el valor de la celda llega a cero.
y poner en cola las tres direcciones posibles desde la celda actual.
- Una vez que la cola esté vacía, encuentre la puntuación más alta para cada una de las cuatro direcciones iniciales posibles y elíjala.
Me pareció bien en el papel, pero los fantasmas rodean a PacMan extremadamente rápido y se mueve de un lado a otro en las mismas dos o tres celdas hasta que uno lo alcanza. Ajustar los valores para la presencia fantasma tampoco ayuda. Mi punto BFS más cercano puede al menos llegar al nivel 2 o 3 antes de que termine el juego.
Estoy buscando código, pensamientos y / o enlaces a recursos para desarrollar una IA adecuada, preferiblemente los dos primeros. Me gustaría lanzar esto en el mercado en algún momento de este fin de semana, así que tengo un poco de prisa. Cualquier ayuda es muy apreciada.
FYI, esto fue publicado originalmente en StackOverflow