3.9 Corrigés des exercices
}
} ;
Table > TT;
Virus virus ;
int alphabeta ( int depth , int alpha , int beta ,
char joueur , list & vp );
void joueAlphaBeta (Coup & coup , int depth , int & alpha ,
int & beta , char joueur ,
}
list &vp ) {
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 . push_front (coup );
}
virus . dej oue (coup );
if (alpha >= beta ) {
scoreHistorique [coup . nombre ()] += 4 << ( depth * 2);
}
int alphabeta ( int depth , int alpha , int beta ,
char joueur , list & vp ) {
if (clock () - clockStart > maxClock )
return O;
i f ( de p th == 0 )
return quiescence (alpha , beta , joueur );
char autre = virus . adversaire (joueur );
/* Coupes selectives avec coup nul */
int R = 2;
if (depth >R+ 1) {
1 i s t vptemp ;
61
int eval = -alphabeta ( depth - 1 - R, -beta , -be ta + 1,
autre , vptemp );
}
if ( eval >= beta )
return beta ;
}
} ;
Table
Virus virus ;
int alphabeta ( int depth , int alpha , int beta ,
char joueur , list
void joueAlphaBeta (Coup & coup , int depth , int & alpha ,
int & beta , char joueur ,
}
list
char autre = virus . adversaire (joueur );
virus . joue (coup );
1 i s t
int eval = -alphabeta ( depth - 1, -beta , -alpha , autre ,
vptemp );
if ( eval > alpha) {
alpha = eval ;
vp = vptemp ;
vp . push_front (coup );
}
virus . dej oue (coup );
if (alpha >= beta ) {
scoreHistorique [coup . nombre ()] += 4 << ( depth * 2);
}
int alphabeta ( int depth , int alpha , int beta ,
char joueur , list
if (clock () - clockStart > maxClock )
return O;
i f ( de p th == 0 )
return quiescence (alpha , beta , joueur );
char autre = virus . adversaire (joueur );
/* Coupes selectives avec coup nul */
int R = 2;
if (depth >R+ 1) {
1 i s t
61
int eval = -alphabeta ( depth - 1 - R, -beta , -be ta + 1,
autre , vptemp );
}
if ( eval >= beta )
return beta ;
