Algo MINI-MAX/ alphabeta

Algo MINI-MAX/ alphabeta - Algo - Programmation

Marsh Posté le 30-01-2006 à 18:53:24    

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 :
  1. public int alphaBeta(int couleur, Board plateau, int profondeur, int alpha, int beta){
  2.  int couleurAdversaire=0, noCoupGarde;
  3.  int score=0, ncj=0;  // nombre de coups jouables
  4.  if (couleur==BLANC) couleurAdversaire=NOIR;
  5.      if (couleur==NOIR)  couleurAdversaire=BLANC;
  6.  if (profondeur<=0 || plateau.finDuJeu())
  7.   return f(plateau, couleur);
  8.  else {
  9.   ncj=plateau.nbrePionsJouables(couleur);
  10.   for (int i=0;i<ncj;i++) {
  11.    Case coup_a_jouer=plateau.listeDeCoups(couleur)[i];
  12.    score= - alphaBeta(couleurAdversaire,obtenirPlateauDeJeuSuivant(plateau, couleur, coup_a_jouer)
  13.      ,profondeur-1, -beta, -alpha);
  14.    if (score >=beta)
  15.     return score;
  16.    if (score > alpha)
  17.     alpha=score;
  18.   }
  19.  }
  20.  return alpha;
  21. }

Reply

Marsh Posté le 30-01-2006 à 18:53:24   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed