Question

Je comprends qu'un arbre de décision minimax est une bonne approche pour mettre en œuvre une IA pour un jeu de société. Actuellement, j'essaie d'implémenter un jeu appelé Gomoku (5 d'affilée). Mais il y a une chose dont je suis confus:

J'ai regardé autour de moi et il semble que presque tous les algorithmes minimax / alphabeta renvoient un entier. Plus précisément pour moi, la valeur de retour de l'évaluation (BestGomokuboard). Comment suis-je censé trouver la coordonnée du tableau gagnant?

Voici ce que j'ai fait jusqu'à présent: j'ai un tableau 20x20 d'entiers, représentant un espace vide (0), un ordinateur (1) et un joueur (2). Pour réduire les frais généraux, chaque nœud de l'arbre minimax est une représentation du tableau 9x9 du réseau plus grand (un cadre de référence plus petit). Ma fonction EVAL renvoie un INT, mon algorithme MinimAx / Alphabeta renvoie un INT. Comment trouver les coordonnées du mouvement de l'IA?

et merci d'avance!

Était-ce utile?

La solution

Vous pouvez faire deux fonctions max légèrement différentes. Celui qui ne renvoie qu'un entier (le score) et une autre fonction maximale (par exemple maxwithbestmove ou rootmax), qui renvoie le score et le meilleur mouvement. L'ordre d'appel récursif serait que:

maxWithBestMove --> min --> max --> min --> max....

Jetez un œil à la note n ° 2 dans le Framework Negamax sur le wiki de programmation à l'échec. Une réponse similaire que j'ai donnée ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top