3 #ifndef _GENERATECAPTUREMOVES_TCC
4 #define _GENERATECAPTUREMOVES_TCC
14 namespace move_generator
16 using namespace effect_action;
19 template<Player P,
class Action>
22 Piece p1=state.pieceAt(target);
24 int num=pieces.takeOneBit();
25 Piece p=state.pieceOf(num);
26 if(state.pinOrOpen(P).test(num) && !state.pinnedCanMoveTo<P>(p,
target))
33 template<
class Action>
39 PieceMask pieces=state.piecesOnBoard(P)&state.effectSetAt(target);
40 capture::generate<P,Action>(state,
target,action,pieces);
43 template<
class Action>
48 PieceMask pieces=state.piecesOnBoard(P)&state.effectSetAt(target);
49 pieces.reset(piece.
number());
50 capture::generate<P,Action>(state,
target,action,pieces);
56 template<
class Action>
57 template<osl::Player P>
62 Piece move = state.findCheapAttackNotBy(P, target, state.pinOrOpen(P));
64 move = state.findCheapAttack(P, target);
67 (state,move,target,state.pieceAt(target),action);