Code: Select all
//------- E: IF NO MOVES WERE LEGAL, IT'S EITHER STALEMATE OR CHECKMATE --------
if(stale) {
// No move has been found legal
// if we are not in check, this is stalemate
if(inCheck==0) {
space->ply--;
return Max(alpha,0);
}
else {
// we are in a checkmate position
val=-MATE_SCORE+space->ply;
space->ply--;
if(-MATE_SCORE+space->ply>alpha)
return -MATE_SCORE+space->ply;
else
return alpha;
}
}
Code: Select all
//------- E: IF NO MOVES WERE LEGAL, IT'S EITHER STALEMATE OR CHECKMATE --------
if(stale) {
// No move has been found legal
// if we are not in check, this is stalemate
if(inCheck==0) {
space->ply--;
if(0>=beta)
return beta;
else if(0>alpha)
return 0;
else
return alpha;
}
else {
// we are in a checkmate position
val=-MATE_SCORE+space->ply;
space->ply--;
if(val>=beta)
return beta;
else if(val>alpha)
return val;
else
return alpha;
}
}
Code: Select all
Version ELO +/- games score draw
A) Original Code 18 28 262 53% 16%
B) Updated Mate score return 5 26 300 51% 16%
C) Two-month old Code 4 29 262 51% 14%
D) Updated Mate&Stalemate return -28 26 300 45% 16%