3 #ifndef _CHECKMATE_FIXED_DEPTH_SERCHER2_H
4 #define _CHECKMATE_FIXED_DEPTH_SERCHER2_H
35 static const int MAXDEPTH=16;
37 CArray<NumEffectState,MAXDEPTH>
states;
44 : original_state(&s), count(0)
63 template <Player P,
bool SetPieces,
bool HasGu
ide>
65 template <Player P,
bool SetPieces,
bool HasGu
ide>
67 template <Player P,
bool SetPieces>
74 template <Player P,
bool SetPieces>
77 Square target_position)
const;
87 states[
depth].copyFrom(*original_state);
88 return attack<P,true,false>(
depth, best_move, proof_pieces);
101 states[
depth].copyFrom(*original_state);
102 return attack<P,false,false>(
depth, best_move, proof_pieces);
108 return hasCheckmateMove<P>(
depth, checkmate_move);
122 return defense<P,true>(last_move,
depth, proof_pieces);
128 return defense<P,false>(last_move,
depth, proof_pieces);
156 template <Player Defense>
157 void generateBlockingWhenLiberty0(
int depth,
Piece defense_king,
Square attack_from,
159 template <Player Defense>
160 int blockEstimation(
Square attack_from,
Square defense_king)
const;