Étienne9 Posté(e) le 19 avril 2014 Signaler Posté(e) le 19 avril 2014 Bonjour à tous, Voilà, je programme un Puissance 4, tout est bon sauf un truc. Alors j'utilise l'algorithme alpha-bêta avec les coupes alpha, bêta et je parviens à prévoir 4 coups à l'avance (toutes les possibilités du joueur et de l'IA) dans un temps raisonnable avec la machine. Sauf que j'ai un soucis, c'est ma fonction d'évaluation qui n'est pas terrible. En gros, je voudrais que si je donne la grille à la fonction, elle m'évalue une valeur selon si c'est plus près de la victoire ou de l'échec. J'ai fait une fonction gagner qui retourne 100 000 si l'IA a gagné, 0 si personne n'a gagné, et -100 000 si le joueur humain a gagné. Si une personne a gagné, j'arrête de produire des fils dans l'arbre et je renvoie l'évaluation. J'ai rajouté aussi une fonction nombrePionsTroisAlignés qui attribue par exemple 100 points pour chaque alignement de 3 jetons. Et j'ai rajouté une petite fonction pièges mais difficile d'expliquer avec mes mots. Sauf que voilà, ma fonction d'évaluation n'est pas assez puissante j'ai l'impression. Si vous avez des idées, je suis preneur. Merci beaucoup d'avance.
E-Bahut pzorba75 Posté(e) le 20 avril 2014 E-Bahut Signaler Posté(e) le 20 avril 2014 C'est quoi le problème et où se trouve la solution?
Étienne9 Posté(e) le 21 avril 2014 Auteur Signaler Posté(e) le 21 avril 2014 Bonjour, Le problème c'est que pour grille de puissance 4 donnée, je dois retourner une valeur, positive est très élevée si l'intelligence artificielle va gagner ou gagne. Et une toute petite valeur si l'IA est mal barrée... Autrement dit, la difficulté est d'évaluer correctement la grille... J'ai plusieurs grilles et je dois choisir grâce à une fonction d'évaluation la meilleure grille.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.