Go to the documentation of this file.
17 for(
int num=32;num<=39;num++){
25 if((moveMask&
dirToMask(longD))==0)
continue;
29 for(;(p1=state.
pieceAt(pos)).isEmpty();pos+=o) ;
32 contents[num1][
static_cast<Direction>(i)]=num1;
40 for(
int num=0;num<=39;num++){
42 for(
int d=0;d<7;d++) os << et[num][static_cast<Direction>(d)] <<
",";
43 os << et[num][static_cast<Direction>(7)] <<
"],\n";
50 for(
int num=0;num<=39;num++){
51 if(e1[num][
static_cast<Direction>(i)]!=e2[num][
static_cast<Direction>(i)])
return false;
const Piece pieceAt(Square sq) const
bool operator==(const EffectedNumTable &, const EffectedNumTable &)
const BoardTable Board_Table
std::ostream & operator<<(std::ostream &, const EffectedNumTable &)
constexpr Direction inverse(Direction d)
const PtypeTable Ptype_Table
int getMoveMask(Ptype ptype) const
const Piece pieceOf(int num) const
constexpr Direction shortToLong(Direction d)
引数に longDirを与えてはいけない
const Offset getOffsetForBlack(Direction dir) const
黒にとってのoffsetを返す
bool isEdge() const
onBoardから8近傍のオフセットを足した点がedgeかどうかの判定 そこそこ速くなった.
const Square square() const
CArray< EffectedNum, 40 > contents
constexpr int dirToMask(Direction dir)