17 bool operator==(
const BoardMask&,
const BoardMask&);
18 std::ostream&
operator<<(std::ostream&,
const BoardMask&);
40 void set(
unsigned int i) {
52 bool test(
unsigned int i)
const {
54 return (
contents[j]&(1ull<<(i&63)))!=0;
80 static int index(
int x,
int y){
return x*12+y+1; }
83 return v-((v>>2)&0x3c);
85 template<Direction Dir,Player P>
89 int val=blackDx*12+blackDy;
90 if(P==
BLACK)
return val;
137 using container::BoardMask;
unsigned int index() const
static const Square makeDirect(int value)
const BoardMask & mask(Square p) const
p中心の3x3 の範囲のbitを立てたもの, centeringなし
CArray< BoardMask, Square::SIZE > data
const BoardMask & mask(Square p) const
p中心の5x3 の範囲のbitを立てたもの, centering
CArray< BoardMask, Square::SIZE > data
BoardMaskTable5x3Center()
const BoardMask & mask(Square p) const
p中心の5x5 の範囲のbitを立てたもの, centeringなし
CArray< BoardMask, Square::SIZE > data
bool test(Square pos) const
void reset(unsigned int i)
CArray< unsigned long long, 3 > contents
the third one is only for edge
BoardMask & operator=(const BoardMask &src)
BoardMask & operator|=(const BoardMask &mask)
static int index(int x, int y)
friend bool operator==(const BoardMask &, const BoardMask &)
bool test(unsigned int i) const
bool anyInRange(const BoardMask &mask) const
static int index(Square pos)
static int getIndexOffset()
static Square toSquare(int n)
BoardMask(const BoardMask &src)
const BoardMask operator|(const BoardMask &l, const BoardMask &r)
const BoardMaskTable5x5 Board_Mask_Table5x5
bool operator==(BitXmask l, BitXmask r)
const BoardMaskTable3x3 Board_Mask_Table3x3
const BoardMaskTable5x3Center Board_Mask_Table5x3_Center
std::ostream & operator<<(std::ostream &, const BitXmask)
static int takeOneBit(Integer &mask)