40
}
}
Minimax, Alpha-Bêta et heuristiques associées
coup = * Yp . be gin ();
cout << "eval�=� " << eval << end! ;
cout << "Variation�:�" ;
for (list :: iterator it = vp . begin ();
i t ! = vp . end (); ++ i t )
cout << *Ît
<< "�" ;
cout << end! ;
cout << "Je�joue�en�" << coup .x << " " <<
coup . y << end! ;
virus . joue (coup );
return 0;
2.14.11 Coups qui tuent
Coup coupQuiTue [ ProfondeurMax] [2];
void miseAJourCoupQuiTue ( int d, Coup & coup) {
if (coupQuiTue [d] [O] != coup ) {
}
}
coupQuiTue [ d] [ 1] = coupQuiTue [ d] [ 0] ;
coupQuiTue [d] [O] = coup ;
int alphabeta ( int depth , int alpha , int beta , char joueur ,
1 i s t & vp );
void joueAlphaBeta (Coup & coup , int depth , int & alpha ,
int & beta , char joueur ,
}
1 i s t &v p ) {
char autre = virus . adversaire (joueur );
virus . joue (coup );
1 i s t vptemp ;
int eval = -alphabeta ( depth - 1, -beta , -alpha , autre ,
vptemp );
if ( eval > alpha) {
alpha = eval ;
}
vp = vptemp ;
vp .pu sh_front (coup );
virus . dejoue (coup );
i f ( a 1 p h a >= be ta )
miseAJourCoupQuiTue ( depth , coup );
Précédent

- 54/256

Suivant