3 #ifndef OSL_CHECKMATE_KING8INFO_H 
    4 #define OSL_CHECKMATE_KING8INFO_H 
    9 #include <boost/cstdint.hpp> 
   47                                          const PieceMask& pinned);
 
   53         return (
unsigned int)(
value&0xffull);
 
   58         return (
unsigned int)((
value>>8)&0xffull);
 
   63         return (
unsigned int)(
value&0xffffull);
 
   68         return (
unsigned int)((
value>>16)&0xffull);
 
   73         return (
unsigned int)((
value>>24)&0xffull);
 
   77         return (
unsigned int)((
value>>32)&0xffull);
 
   81         return (
unsigned int)((
value>>40)&0xffull);
 
   86         return (
unsigned int)((
value>>48)&0xfull);
 
   88       template<Player P,Direction Dir>
 
   90         if((
value & (1ull<<(24+Dir)))==0) 
return 0;
 
   92         if(state.countEffect(P,pos)<2 &&
 
  100         Square king=state.kingSquare<altP>();
 
  101         return moveCandidateDir<P,UL>(state,king)+
 
  102           moveCandidateDir<P,U>(state,king)+
 
  103           moveCandidateDir<P,UR>(state,king)+
 
  104           moveCandidateDir<P,L>(state,king)+
 
  105           moveCandidateDir<P,R>(state,king)+
 
  106           moveCandidateDir<P,DL>(state,king)+
 
  107           moveCandidateDir<P,D>(state,king)+
 
  108           moveCandidateDir<P,DR>(state,king);
 
  112         if(player==
BLACK) 
return countMoveCandidate<BLACK>(state);
 
  113         else return countMoveCandidate<WHITE>(state);
 
  119         Square king=state.kingSquare<altP>();
 
  120         return (moveCandidateDir<P,UL>(state,king)<<
UL)+
 
  121           (moveCandidateDir<P,U>(state,king)<<
U)+
 
  122           (moveCandidateDir<P,UR>(state,king)<<
UR)+
 
  123           (moveCandidateDir<P,L>(state,king)<<
L)+
 
  124           (moveCandidateDir<P,R>(state,king)<<
R)+
 
  125           (moveCandidateDir<P,DL>(state,king)<<
DL)+
 
  126           (moveCandidateDir<P,D>(state,king)<<
D)+
 
  127           (moveCandidateDir<P,DR>(state,king)<<
DR);
 
  133         Square king=state.kingSquare<altP>();
 
  134         if(moveCandidateDir<P,U>(state,king)!=0) 
return true;
 
  135         if(moveCandidateDir<P,UL>(state,king)!=0) 
return true;
 
  136         if(moveCandidateDir<P,UR>(state,king)!=0) 
return true;
 
  137         if(moveCandidateDir<P,L>(state,king)!=0) 
return true;
 
  138         if(moveCandidateDir<P,R>(state,king)!=0) 
return true;
 
  139         if(moveCandidateDir<P,D>(state,king)!=0) 
return true;
 
  140         if(moveCandidateDir<P,DL>(state,king)!=0) 
return true;
 
  141         if(moveCandidateDir<P,DR>(state,king)!=0) 
return true;
 
  152       template<Player P,Direction Dir>
 
  158                     PieceMask on_board_defense);
 
  184   using checkmate::King8Info;