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;