12 const Square center = Centering5x3::adjustCenter(king);
14 const int min_x = center.
x() - 2;
15 const int min_y = center.
y() - 1;
20 for (
int dx=0; dx<5; ++dx)
22 for (
int dy=0; dy<3; ++dy)
24 const Square target(min_x+dx,min_y+dy);
30 return sum_effect / 2;
41 if (mw.anyInRange(Board_Mask_Table5x3_Center.
mask(kw)))
const BoardMask changedEffects(Player pl) const
int countEffect(Player player, Square target) const
利きの数を数える.
Square kingSquare() const
int y() const
将棋としてのY座標を返す.
int x() const
将棋としてのX座標を返す.
const BoardMask & mask(Square p) const
p中心の5x3 の範囲のbitを立てたもの, centering
bool anyInRange(const BoardMask &mask) const
unsigned int getDefenseEffect(Player pl, Square pos, int x, int y) const
Effect5x3Table Effect5x3_Table
static int makeProgress(Player defense, const NumEffectState &state, Square king)
王の位置を指定したprogressの計算.
void update(const NumEffectState &new_state, Move last_move)