5.9 Corrigés des exercices
autre = Blanc ;
if ( (go ban . n bCou psJoues >= Max Coups) 11
go ban . gameOver ()) {
goban . calcule Scores ();
return ;
}
int nbCoups = goban . nbCoupsJoues;
floa t meilleurScore = -1.0;
Intersection meilleur (0 , 0);
for ( int i = l; i <= Taille ; i++)
for ( i n t j = l ; j <= T a i li e ; j + +) {
Intersection inter (i , j);
if (goban . coupLegal (inter , couleur ) &&
!goban. oeil (inter , couleur )) {
fl oat moy = moyenne ( i, j, nmoy );
int playoutsFils = nbPlayoutsFils (i , j, nfils );
121
fi o a t moyenneAMAF = ( sommeScoreAMAF [ i ] [ j ] + 1 ) /
( nbPlayoutsCoupAMAF [ i] [ j ] + 2);
}
}
fl oat beta = (nbPlayoutsCoupAMAF [i] [j ) /
( l + nbPlayoutsCoupAMAF [ i] [ j] +
playoutsFils + ConstanteRave *
nbPlayoutsCoupAMAF [ i] [ j ] *
playoutsFils ));
fi o a t score = ( l . 0 - be ta ) * moy +
be ta * moyenneAMAF ;
if (score > meilleurScore ) {
meilleurScore = score ;
meilleur = inter ;
}
goban . joue (meilleur , couleur );
if (fils [meilleur ._x) [meilleur ._y) != NULL )
fi ls [meilleur ._x)
[meilleur. _y]->descente (goban , autre );
else {
NoeudRave * n = tableRave .present (goban.hash );
if ( pasDeTranspo )
n = NULL ;
if (n == NUL L) {
nbNoeudsRave --;
n = &p ileNoeudRave [ nbNoeudsRave ];
n->init ();
n->hash = goban .hash ;
tableRave . aj oute (n);
Précédent

- 135/256

Suivant