Bonjour a Tous,
dans le cadre d'un projet de programmation d'un jeu d'othello j'utilise l'algorithme
alpha-beta.
En resumé j'ai :
1/ une fonction qui invite l'ordinateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.   int inviter_ordinateur(liste d'arguments)
.        {
.          ...
.          nb_coup_possible = coup_possible(liste d'arguments);
.          for( i = 0; i < nb_coup_possible; i++)
.             {
.                 coup = tab_coup[i];
.                 ...
.                 for(prof = 1;  ; prof++)  /*approfondissement iteratif */
.                     {
.                       ...
.                       score = alphabeta(prof, &coup, plateau, ...)
.                       ...
.                      }
.                     ...
.               }
.             ...
.        }
2/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 int alphabeta(int prof,int  *coup, int plateau[], ...)
.   {
.       ...
.       nb_pions_retournés = maj_damier(...);
.        nbr_coup_possible = coup_possible(liste d'arguments);
.       ...
.       if(nb_pions[BLANC] +nb_pions[NOIR]=64 || prof <= 0)
.          return eval(...);
.       ...
.       for(i = 0;i<nbr_coup_possible)
.          {
.               ...
.               score = - alphabeta(prof - 1 , &coup, plateau , ... - alpha , - beta);
.               ...
.           }
.       ...
.   }
.
En fait mon probleme est que :
jusqu'a return eval tout va bien mais apres, au lieu de revenir directement vers
la fontion inviter_ordinateur(...), il continue dans alphabeta(..) comme si la fonction
appelante est alphabeta et non inviter_ordinateur.
si quelqu'un(e) peut m'expliquer pourquoi et comment faire pour que le retour se fasse
directement vers la fonction appelante.
je vous remercie amplement a l'avance.