maahou59 | bonjour,
jessaie d'implementer l'algorithme "alpha-beta" dans un jeu de reversi.
Le probleme c'est que le resultat de cette méthode est un entier, et si j'ai bien compris cet entier correspond au meilleur "score" possible pour tous les mouvements que l'ordinateur peut faire.
Donc si il y a 5 coups jouables, alpha-beta va me donner le score du meilleur coup jouable.
Mon probleme est de savoir récupérer ce "meilleur" coup (C5, D6 , A1 , etc..)
si quelqu'un peut m'apporter un indice, ca m'aiderait énormément,
Merci.
Code :
- public int alphaBeta(int couleur, Board plateau, int profondeur, int alpha, int beta){
- int couleurAdversaire=0, noCoupGarde;
- int score=0, ncj=0; // nombre de coups jouables
- if (couleur==BLANC) couleurAdversaire=NOIR;
- if (couleur==NOIR) couleurAdversaire=BLANC;
- if (profondeur<=0 || plateau.finDuJeu())
- return f(plateau, couleur);
- else {
- ncj=plateau.nbrePionsJouables(couleur);
- for (int i=0;i<ncj;i++) {
- Case coup_a_jouer=plateau.listeDeCoups(couleur)[i];
- score= - alphaBeta(couleurAdversaire,obtenirPlateauDeJeuSuivant(plateau, couleur, coup_a_jouer)
- ,profondeur-1, -beta, -alpha);
- if (score >=beta)
- return score;
- if (score > alpha)
- alpha=score;
- }
- }
- return alpha;
- }
|
|