18 if((mask&(1<<l))==0)
continue;
33 for(
int i=0;i<0x100;i++){
39 if((i&(0x1<<j))!=0)
continue;
41 if(canCheckmate(ptype,dir,i))
48 for(
int i=0;i<0x10000;i++){
49 unsigned char ptypeMask=0;
54 if((i&(0x1<<j))==0)
continue;
56 if((i&(0x100<<j))!=0)
continue;
58 if(canCheckmate(ptype,dir,(i>>8)&0xff)){
84 !(dx==-dx1 && dy==-dy1)
98 unsigned int mask=0x1ff;
105 for(
int l=0;l<8;l++){
int getDxForBlack(Direction dir) const
const Offset getShortOffsetNotKnight(Offset32 offset32) const
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す.
int getDyForBlack(Direction dir) const
const EffectContent getEffect(PtypeO ptypeo, Square from, Square to) const
fromにいるptypeoがtoに利きを持つか?
int getMoveMask(Ptype ptype) const
const PtypeTable Ptype_Table
constexpr int dirToMask(Direction dir)
const BoardTable Board_Table
constexpr Direction shortToLong(Direction d)
引数に longDirを与えてはいけない
PtypeO newPtypeO(Player player, Ptype ptype)