112
Rec herc he arborescente Monte-Carlo
Noeud racine ;
void Noeud :: descente (Go & goban , int couleur ) {
int autre = Noir ;
i f ( c o u 1 e u r == No i r )
autre = Blanc ;
if (( goban . nbCoupsJoues >= MaxCoups) 11
go ban . gameüver ()) {
goban . calculeScores ();
return ;
}
while (ordonnee != Taille + 1) {
Intersection inter (abscisse , ordonnee );
abscisse+ +;
}
if ( ab s c i s se -- T a i 11 e + 1 ) {
abscisse = 1;
ordonnee++;
}
if (goban . coupLegal (inter , couleur ) &&
}
! goban . oeil (inter , couleur )) {
goban .joue (inter , couleur );
nbNoeuds --;
Noeud * Il = &p ileNoeud [ nbNoeuds ];
n->init ();
n->hash = goban .hash ;
fi 1 s [ inter . _x ] [ inter . _y ] = n;
goban . playout (autre );
sommeScore [inter ._x] [inter ._y] =
goban . score [couleur ];
nbPlayoutsCoup [inter ._x] [inter ._y] = 1;
return ;
fl oat meilleurScore = -1.0;
Intersection meilleur (0 , O);
for ( in t i = 1 ; i <= Tai 11 e ; i ++)
for (int j = 1; j <= Taille ; j++) {
Intersection inter (i , j );
if ( goban . coup Le gal (inter , couleur ) &&
(fils [i] [j ] != NULL )) {
fl oat moy = moyenne (i , j );
int playoutsFils = nbPlayoutsCoup [i] [j ];
int playoutsPere = nbPlayouts ();
fl oat score = moy +
Précédent

- 126/256

Suivant