Tout d'abord, il s'agit de l' IA pour PacMan et non des fantômes .
J'écris un fond d'écran en direct Android qui joue PacMan autour de vos icônes. Bien qu'il supporte les suggestions des utilisateurs via des touches d'écran, la majorité du jeu sera joué par une IA. J'ai terminé à 99% avec toute la programmation du jeu, mais l'IA pour PacMan lui-même est toujours extrêmement faible. Je cherche de l'aide pour développer une bonne IA pour déterminer la prochaine direction de voyage de PacMan.
Mon plan initial était le suivant:
- Initialisez un compteur de score pour chaque direction avec une valeur de zéro.
- Commencez à la position actuelle et utilisez un BFS pour traverser vers l'extérieur dans les quatre directions initiales possibles en les ajoutant à la file d'attente.
Retirez un élément de la file d'attente, assurez-vous qu'il n'a pas déjà été "vu", assurez-vous qu'il s'agit d'une position de tableau valide et ajoutez aux directions initiales correspondantes une valeur pour la cellule actuelle en fonction de:
- A un point: plus 10
- A une mise sous tension: plus 50
- A un fruit: plus la valeur du fruit (varie selon le niveau)
- A un fantôme qui a peur: plus 200
- Un fantôme voyage vers PacMan: soustrayez 200
- Un fantôme s'éloigne de PacMan: ne rien faire
- Possède un fantôme se déplaçant perpendiculairement: soustrayez 50
- Multipliez la valeur de la cellule par un pourcentage en fonction du nombre de pas vers la cellule, plus il y a de pas depuis la direction initiale, plus la valeur de la cellule se rapproche de zéro.
et mettre en file d'attente les trois directions possibles à partir de la cellule actuelle.
- Une fois la file d'attente vide, trouvez le score le plus élevé pour chacune des quatre directions initiales possibles et choisissez-le.
Cela me paraissait bien sur le papier, mais les fantômes entourent PacMan extrêmement rapidement et il se tortille d'avant en arrière dans les mêmes deux ou trois cellules jusqu'à ce que l'on l'atteigne. L'ajustement des valeurs de la présence fantôme n'aide pas non plus. Mon point BFS le plus proche peut au moins atteindre le niveau 2 ou 3 avant la fin du jeu.
Je recherche du code, des réflexions et / ou des liens vers des ressources pour développer une IA appropriée - de préférence les deux premières. Je voudrais le publier sur le marché ce week-end, donc je suis un peu pressé. Toute aide est grandement appréciée.
Pour info, ceci a été initialement publié sur StackOverflow