58 initPtype<PTYPE_EMPTY>();
59 initPtype<PTYPE_EDGE>();
75 effectTableNotLongU.fill();
86 if((moveMasks[ptype]&(1<<dir))!=0){
92 shortMoveMask[0][dir-10]|=1<<(ptype-
PTYPEO_MIN);
93 shortMoveMask[1][dir-10]|=1<<(ptype-16-
PTYPEO_MIN);
103 if(
static_cast<int>(dir)!=
LONG_U){
105 effectTableNotLongU[ptype-16-
PTYPEO_MIN][(-offset32).index()]=effectTable[ptype-16-
PTYPEO_MIN][(-offset32).index()];
111 shortMoveMask[1][dir]|=1<<(ptype-16-
PTYPEO_MIN);
int getDxForBlack(Direction dir) const
int getDyForBlack(Direction dir) const
static const EffectContent DIRECT()
unsigned int index() const
void initPtypeSub(Int2Type< false > isBasic)
const EffectContent getEffect(PtypeO ptypeo, Square from, Square to) const
fromにいるptypeoがtoに利きを持つか?
EffectContent & effect(PtypeO ptypeo, Offset32 offset32)
static int reverseY(int y)
bool canPromote(Ptype ptype)
ptypeがpromote可能な型かどうかのチェック promote済みの場合はfalseを返す
const BoardTable Board_Table
Offset32Base< 8, 9 > Offset32
Offset newOffset(int dx, int dy)
@obsolete
constexpr bool isLong(Direction d)
PtypeO newPtypeO(Player player, Ptype ptype)
Ptype promote(Ptype ptype)
promote可能なptypeに対して,promote後の型を返す promote不可のptypeを与えてはいけない.