局面全体の利きデータ. More...
#include <numSimpleEffect.h>
Public Member Functions | |
template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC> | |
void | doEffectShort (const SimpleState &state, Square pos, int num) |
ある位置からある方向に短い利きがある時に,その方向の利きを更新する. More... | |
template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC> | |
void | doEffectLong (const SimpleState &state, Square pos, int num) |
ある位置からある方向に長い利きがある時に,その方向の利きを更新する. More... | |
template<Player P, Ptype T, NumBitmapEffect::Op OP, bool UC> | |
void | doEffectBy (const SimpleState &state, Square pos, int num) |
ある種類の駒が持つ利きを更新する. More... | |
template<NumBitmapEffect::Op OP, bool UC> | |
void | doEffect (const SimpleState &state, PtypeO ptypeo, Square pos, int num) |
ある種類の駒が持つ利きを更新する. More... | |
template<NumBitmapEffect::Op OP, bool UC> | |
void | doEffect (const SimpleState &state, Piece p) |
ある駒が持つ利きを更新する. More... | |
void | init (const SimpleState &state) |
盤面のデータを元に初期化する. More... | |
NumSimpleEffectTable (const SimpleState &state) | |
コンストラクタ. More... | |
const NumBitmapEffect | effectSetAt (Square pos) const |
ある位置の利きデータを取り出す. More... | |
template<NumBitmapEffect::Op OP, bool UC> | |
void | doBlockAt (const SimpleState &state, Square pos, int piece_num) |
posに駒を設置/削除して長い利きをブロック/延長する際の利きデータの更新. More... | |
const BoardMask | changedEffects (Player pl) const |
const NumBitmapEffect | changedPieces () const |
const PieceMask | effectedMask (Player pl) const |
const PieceMask | effectedChanged (Player pl) const |
void | setChangedPieces (NumBitmapEffect const &effect) |
void | clearChangedEffects () |
void | invalidateChangedEffects () |
void | clearEffectedChanged () |
void | copyFrom (const NumSimpleEffectTable &src) |
主要部分を高速にコピーする. More... | |
Public Attributes | |
CArray< PieceMask, 2 > | effected_mask |
CArray< PieceMask, 2 > | effected_changed_mask |
mobility::MobilityTable | mobilityTable |
mobility More... | |
EffectedNumTable | effectedNumTable |
effected num More... | |
Protected Attributes | |
CArray< NumBitmapEffect, Square::SIZE > | effects |
CArray< BoardMask, 2 > | changed_effects |
NumBitmapEffect | changed_effect_pieces |
set of pieces whose effect changed by previous move More... | |
Friends | |
bool | operator== (const NumSimpleEffectTable &et1, const NumSimpleEffectTable &et2) |
局面全体の利きデータ.
Definition at line 26 of file numSimpleEffect.h.
|
inline |
コンストラクタ.
Definition at line 210 of file numSimpleEffect.h.
Definition at line 235 of file numSimpleEffect.h.
Referenced by osl::NumEffectState::changedEffects(), and osl::NumEffectState::hasChangedEffects().
|
inline |
Definition at line 238 of file numSimpleEffect.h.
Referenced by osl::NumEffectState::changedPieces().
|
inline |
Definition at line 250 of file numSimpleEffect.h.
References osl::container::PieceMask64::resetAll().
Referenced by osl::NumEffectState::makeMovePass(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::prologueSimple().
|
inline |
Definition at line 260 of file numSimpleEffect.h.
Referenced by osl::NumEffectState::makeMovePass(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::prologueSimple().
void osl::effect::NumSimpleEffectTable::copyFrom | ( | const NumSimpleEffectTable & | src | ) |
主要部分を高速にコピーする.
盤の外や直前の利きの変化などの情報はコピーされない
Definition at line 23 of file numSimpleEffect.cc.
References changed_effect_pieces, changed_effects, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::Square::index(), mobilityTable, and OSL_NO_SSE.
Referenced by osl::NumEffectState::copyFrom(), and init().
void osl::effect::NumSimpleEffectTable::doBlockAt | ( | const SimpleState & | state, |
Square | pos, | ||
int | piece_num | ||
) |
posに駒を設置/削除して長い利きをブロック/延長する際の利きデータの更新.
OP(template) | - 利きを足すか,減らすか |
state | - 局面の状態 posに駒を置く前でも後でもよい |
pos | - 変化する位置 |
xorなのでposに元々駒があって,取り除く時にも呼び出せる.
state | - 局面の状態 posに駒を置く前でも後でもよい |
pos | - 変化する位置 |
Definition at line 286 of file numSimpleEffect.h.
References osl::BLACK, osl::Board_Table, osl::EMPTY_NUM, osl::BoardTable::getShort8(), osl::container::BoardMask::index(), osl::Square::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::effect::NumBitmapEffect::longEffectMask(), osl::effect::NumBitmapEffect::makeLongEffect(), osl::Piece::number(), osl::Piece::owner(), osl::SimpleState::pieceAt(), osl::SimpleState::pieceOf(), osl::effect::NumBitmapEffect::playerEffectMask(), osl::PPAWN, osl::Piece::ptype(), osl::Piece::square(), and osl::effect::NumBitmapEffect::Sub.
Referenced by osl::NumEffectState::epilogueSimple(), and osl::effect::operator!=().
void osl::effect::NumSimpleEffectTable::doEffect | ( | const SimpleState & | state, |
PtypeO | ptypeo, | ||
Square | pos, | ||
int | num | ||
) |
ある種類の駒が持つ利きを更新する.
OP(template) | - 利きを足すか,減らすか |
state | - 盤面(動かした後) |
ptypeo | - 駒の種類 |
pos | - 駒の位置 |
num | - 駒番号 |
Referenced by osl::NumEffectState::epilogueSimple().
|
inline |
ある駒が持つ利きを更新する.
OP(template) | - 利きを足すか,減らすか |
state | - 盤面(動かした後) |
p | - 駒 |
Definition at line 198 of file numSimpleEffect.h.
References osl::Piece::number(), osl::Piece::ptypeO(), and osl::Piece::square().
void osl::effect::NumSimpleEffectTable::doEffectBy | ( | const SimpleState & | state, |
Square | pos, | ||
int | num | ||
) |
ある種類の駒が持つ利きを更新する.
P(template) | - ある位置にある駒の所有者 |
T(template) | - ある位置にある駒の種類 |
OP(template) | - 利きを足すか,減らすか |
state | - 盤面(動かした後) |
pos | - 駒の位置 |
num | - 駒番号 |
|
inline |
ある位置からある方向に長い利きがある時に,その方向の利きを更新する.
P(template) | - ある位置にある駒の所有者 |
T(template) | - ある位置にある駒の種類 |
Dir(template) | - 黒の立場から見た方向 |
OP(template) | - 利きを足すか,減らすか |
state | - 盤面(動かした後) |
pos | - 駒の位置 |
num | - 駒番号 |
Definition at line 89 of file numSimpleEffect.h.
References osl::D, osl::DL, osl::DR, osl::EMPTY_NUM, osl::mobility::MobilityTable::get(), osl::container::BoardMask::index(), osl::Square::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::L, osl::longToShort(), osl::Piece::number(), osl::SimpleState::pieceAt(), osl::effect::NumBitmapEffect::playerEffectMask(), osl::mobility::MobilityTable::set(), osl::Square::STAND(), osl::effect::NumBitmapEffect::Sub, osl::U, osl::UL, osl::UR, osl::Square::x(), osl::Square::y(), and osl::Offset::zero().
|
inline |
ある位置からある方向に短い利きがある時に,その方向の利きを更新する.
P(template) | - ある位置にある駒の所有者 |
T(template) | - ある位置にある駒の種類 |
D(template) | - 駒の所有者の立場から見た方向 |
OP(template) | - 利きを足すか,減らすか |
pos | - 駒の位置 |
num | - 駒番号 |
Definition at line 54 of file numSimpleEffect.h.
References osl::effect::NumBitmapEffect::Add, osl::container::BoardMask::index(), osl::Square::index(), osl::Piece::isPieceNum(), osl::Piece::number(), osl::SimpleState::pieceAt(), and osl::effect::NumBitmapEffect::playerEffectMask().
Definition at line 244 of file numSimpleEffect.h.
References osl::playerToIndex().
Definition at line 241 of file numSimpleEffect.h.
References osl::playerToIndex().
|
inline |
ある位置の利きデータを取り出す.
pos | - 位置 |
Definition at line 219 of file numSimpleEffect.h.
References osl::Square::index(), and osl::checkmate::operator==().
Referenced by osl::NumEffectState::effectSetAt(), osl::NumEffectState::isConsistent(), osl::effect::operator<<(), and osl::effect::operator==().
void osl::effect::NumSimpleEffectTable::init | ( | const SimpleState & | state | ) |
盤面のデータを元に初期化する.
state | - 盤面 |
Definition at line 11 of file numSimpleEffect.cc.
References copyFrom(), osl::SimpleState::isOnBoard(), and osl::SimpleState::pieceOf().
|
inline |
Definition at line 255 of file numSimpleEffect.h.
References osl::container::PieceMask64::setAll().
Referenced by osl::NumEffectState::epilogueCapture(), osl::NumEffectState::epilogueDrop(), and osl::NumEffectState::epilogueSimple().
|
inline |
Definition at line 247 of file numSimpleEffect.h.
Referenced by osl::NumEffectState::prologueCapture().
|
friend |
|
protected |
set of pieces whose effect changed by previous move
Definition at line 36 of file numSimpleEffect.h.
Referenced by copyFrom().
Definition at line 34 of file numSimpleEffect.h.
Referenced by copyFrom().
Definition at line 39 of file numSimpleEffect.h.
Referenced by copyFrom(), osl::NumEffectState::effectedChanged(), osl::NumEffectState::epilogueCapture(), osl::NumEffectState::epilogueDrop(), osl::NumEffectState::epilogueSimple(), osl::NumEffectState::NumEffectState(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::prologueSimple().
Definition at line 38 of file numSimpleEffect.h.
Referenced by copyFrom(), osl::NumEffectState::effectedMask(), osl::NumEffectState::epilogueCapture(), osl::NumEffectState::epilogueDrop(), osl::NumEffectState::epilogueSimple(), osl::NumEffectState::NumEffectState(), osl::effect::operator==(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::prologueSimple().
EffectedNumTable osl::effect::NumSimpleEffectTable::effectedNumTable |
effected num
Definition at line 43 of file numSimpleEffect.h.
Referenced by copyFrom(), osl::NumEffectState::epilogueCapture(), osl::NumEffectState::epilogueDrop(), osl::NumEffectState::epilogueSimple(), osl::NumEffectState::findLongAttackAt(), osl::NumEffectState::isConsistent(), osl::NumEffectState::longEffectNumTable(), osl::effect::operator==(), osl::NumEffectState::prologueCapture(), and osl::NumEffectState::prologueSimple().
|
protected |
Definition at line 33 of file numSimpleEffect.h.
Referenced by copyFrom().
mobility::MobilityTable osl::effect::NumSimpleEffectTable::mobilityTable |
mobility
Definition at line 41 of file numSimpleEffect.h.
Referenced by copyFrom(), osl::NumEffectState::epilogueCapture(), osl::NumEffectState::epilogueDrop(), osl::NumEffectState::epilogueSimple(), osl::NumEffectState::mobilityOf(), osl::effect::operator==(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::prologueSimple().