CPW-Engine_recognize


 * Home * Engines * CPW-Engine * Recognizer**

code format="cpp"
 * 1) include "stdafx.h"

int is_rim[64] = { 1,  1,   1,   1,   1,   1,   1,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   0,   0,   0,   0,   0,   0,   1,	  1,   1,   1,   1,   1,   1,   1,   1 };

/* please note that this recognizer assumes that the position is legal, i.e. side to move is not in check */

int isDraw {

/* no pawns */ if (!b.PawnMaterial[WHITE] && !b.PawnMaterial[BLACK] ) { /* both sides have at most one minor piece - to guard against the possibility of a helpmate in the corner, we do not claim an immediate draw if the king of the weaker side stands on the edge of the board */

if ( b.PieceMaterial[WHITE] < 400 &&			 b.PieceMaterial[BLACK] < 400 &&			 ( !is_rim[b.KingLoc[WHITE] ] || b.PieceMaterial[BLACK] == 0 ) &&			 ( !is_rim[b.KingLoc[BLACK] ] || b.PieceMaterial[WHITE] == 0 )			) return 1;

}

/* default: no draw spotted */ return 0; } code =What links here?= include page="CPW-Engine_recognize" component="backlinks" limit="10"
 * Up one Level**