駒番号のビットセット. [詳細]
#include <pieceMask.h>
Public メソッド | |
PieceMask () | |
PieceMask (const PieceMaskBase &base) | |
void | setMask (int index, mask_t val) |
void | xorMask (int index, mask_t val) |
void | orMask (int index, mask_t val) |
bool | test (int num) const |
void | set (int num) |
void | flip (int num) |
void | reset (int num) |
bool | any () const |
const mask_t | getMask (int num) const |
template<Ptype PTYPE> | |
const mask_t | getMask () const |
unpromote(PTYPE) の駒のbit を*含む*mask_tを取り出す | |
template<Ptype PTYPE> | |
const mask_t | selectBit () const |
unpromote(PTYPE) の駒のbit だけ取り出す | |
template<Ptype PTYPE> | |
void | clearBit () |
unpromote(PTYPE) の駒のbit を消す | |
template<Ptype PTYPE> | |
void | setBit () |
unpromote(PTYPE) の駒のbit を立てる | |
Static Public メソッド | |
static const mask_t | numToMask (int num) |
Private メソッド | |
mask_t & | mutableMaskNum (int num) |
const mask_t | getMaskNum (int num) const |
駒番号のビットセット.
64bitのMask64を一つもしくは,32bitのMask32を2枚で表現する. 各メソッドの変数名は num は駒番号に, index はマスクのID(0-1)に用いられている.
pieceMask.h の 20 行で定義されています。
osl::PieceMask::PieceMask | ( | ) | [inline] |
pieceMask.h の 23 行で定義されています。
osl::PieceMask::PieceMask | ( | const PieceMaskBase & | base | ) | [inline] |
pieceMask.h の 24 行で定義されています。
bool osl::PieceMask::any | ( | ) | const [inline] |
pieceMask.h の 57 行で定義されています。
参照元 osl::eval::ml::MajorCheckWithCapture::addOne(), osl::eval::ml::BishopRookFork::eval(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttacked::eval(), osl::eval::ml::BishopExchangeSilverKing::eval(), osl::eval::ml::KingPieceRelativeNoSupport::eval(), osl::eval::ml::Pin::eval(), osl::eval::ml::SimplePin::eval(), osl::eval::ml::KnightFork::evalOne(), osl::eval::ml::NonPawnAttackedPtypePair::evalOne(), osl::eval::ml::PromotedMinorPieces::evalOne(), osl::eval::ml::King25Effect3::evalOne(), osl::eval::ml::KingPieceRelativeNoSupport::evalWithUpdate(), osl::eval::ml::NonPawnAttackedPtype::evalWithUpdateBang(), osl::rating::EscapePinGroup::findMatch(), osl::move_generator::capture::generate(), osl::move_generator::detail::generateDirNotKing(), osl::move_generator::detail::generateMoveToPtypeMaskWithPieceMask(), osl::rating::FeatureSet::generateRating(), osl::effect::NumBitmapEffect::hasLong(), osl::rating::PinAttack::index(), osl::rating::PinAttack::match(), osl::move_probability::CoverFork::match(), osl::NumEffectState::selectCheapPiece(), osl::eval::ml::NonPawnAttackedPtype::updateChanged(), osl::eval::ml::NonPawnAttacked::updateEffectChanged(), osl::progress::ml::NewProgress::updateNonPawnAttackedPtypePairOne(), と osl::move_probability::StateInfo::updatePinnedGenerals().
void osl::PieceMask::clearBit | ( | ) | [inline] |
unpromote(PTYPE) の駒のbit を消す
pieceMask.h の 74 行で定義されています。
参照元 osl::eval::ml::PiecePairKing::add(), osl::eval::ml::PiecePairKing::addSub(), osl::eval::ml::BishopRookFork::eval(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttacked::eval(), osl::eval::ml::PromotedMinorPieces::eval(), osl::eval::ml::BishopExchangeSilverKing::eval(), osl::eval::ml::PiecePairKing::evalOne(), osl::eval::ml::KnightFork::evalOne(), osl::eval::ml::NonPawnAttackedPtypePair::evalOne(), osl::eval::ml::King25EffectCountCombination::evalOne(), osl::eval::ml::King25Effect3::evalOne(), osl::eval::ml::NonPawnAttackedPtype::evalWithUpdateBang(), osl::eval::ml::NonPawnAttacked::evalWithUpdateBang(), osl::NumEffectState::findThreatenedPiece(), osl::effect_util::AdditionalEffect::hasEffect(), osl::move_probability::CoverFork::match(), osl::NumEffectState::selectCheapPiece(), osl::eval::ml::PiecePairKing::sub(), osl::progress::ml::NewProgress::updateAttack5x5Pieces(), と osl::progress::ml::NewProgress::updateNonPawnAttackedPtypePairOne().
void osl::PieceMask::flip | ( | int | num | ) | [inline] |
pieceMask.h の 51 行で定義されています。
参照先 mutableMaskNum(), と numToMask().
参照元 osl::effect::NumBitmapEffect::makeEffect(), と osl::effect::NumBitmapEffect::playerEffect().
const mask_t osl::PieceMask::getMask | ( | ) | const [inline] |
unpromote(PTYPE) の駒のbit を*含む*mask_tを取り出す
pieceMask.h の 62 行で定義されています。
参照先 getMask().
参照元 osl::effect::NumBitmapEffect::countEffect(), getMask(), getMaskNum(), osl::effect::NumBitmapEffect::hasAny(), と osl::effect::NumBitmapEffect::selectLong().
const mask_t osl::PieceMask::getMask | ( | int | num | ) | const [inline] |
pieceMask.h の 59 行で定義されています。
参照先 getMask().
参照元 osl::checkmate::detail::blockingDiagonalAttack(), osl::move_generator::detail::blockingU(), osl::checkmate::detail::blockingVerticalAttack(), osl::eval::ml::KnightFork::eval(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttacked::eval(), osl::eval::ml::NonPawnAttackedPtypePair::evalOne(), osl::eval::ml::KnightFork::evalWithUpdate(), osl::NumEffectState::findAttackAtStrict(), osl::rating::EscapePinGroup::findMatch(), osl::NumEffectState::findThreatenedPiece(), osl::NumEffectState::forEachEffect(), osl::NumEffectState::forEachOnBoardPtypeStrict(), osl::move_generator::detail::generateKnightDir(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), osl::checkmate::detail::hasCheckmateMoveKnight(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasEffectByPtypeStrict(), osl::NumEffectState::hasEffectInDirection(), osl::rating::ImmediateAddSupport::index(), osl::NumEffectState::longEffectAt(), osl::rating::EscapePin::match(), osl::move_probability::ToEffectLong::match(), osl::operator&(), osl::operator<<(), osl::operator==(), osl::operator|(), osl::operator~(), osl::NumEffectState::prologueDrop(), osl::NumEffectState::selectCheapPiece(), osl::ki2::show(), osl::checkmate::detail::slowCheckDrop(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), osl::progress::ml::NewProgress::updateNonPawnAttackedPtypePairOne(), と osl::progress::ml::NewProgress::updatePawnFacing().
const mask_t osl::PieceMask::getMaskNum | ( | int | num | ) | const [inline, private] |
mask_t& osl::PieceMask::mutableMaskNum | ( | int | num | ) | [inline, private] |
pieceMask.h の 32 行で定義されています。
static const mask_t osl::PieceMask::numToMask | ( | int | num | ) | [inline, static] |
void osl::PieceMask::orMask | ( | int | index, | |
mask_t | val | |||
) | [inline] |
void osl::PieceMask::reset | ( | int | num | ) | [inline] |
pieceMask.h の 54 行で定義されています。
参照先 mutableMaskNum(), と numToMask().
参照元 osl::move_generator::Capture< Action >::escapeByCapture(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttacked::eval(), osl::eval::ml::KingPieceRelativeNoSupport::eval(), osl::eval::ml::NonPawnAttackedPtypePair::evalOne(), osl::eval::ml::King25EmptySquareNoEffect::evalOne(), osl::eval::ml::KingPieceRelativeNoSupport::evalWithUpdate(), osl::eval::ml::NonPawnAttackedPtype::evalWithUpdateBang(), osl::NumEffectState::forEachEffectNotBy(), osl::move_generator::detail::generateMoveToPtypeMask(), osl::move_generator::detail::generateMoveToPtypeMaskWithPieceMask(), osl::move_generator::detail::generateNotKing(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), osl::checkmate::King8Info::make(), osl::NumEffectState::prologueCapture(), osl::eval::ml::NonPawnAttackedPtype::updateChanged(), osl::eval::ml::NonPawnAttacked::updateEffectChanged(), と osl::progress::ml::NewProgress::updateNonPawnAttackedPtypePairOne().
const mask_t osl::PieceMask::selectBit | ( | ) | const [inline] |
unpromote(PTYPE) の駒のbit だけ取り出す
pieceMask.h の 66 行で定義されています。
参照元 osl::move_generator::escape::blockByMoveOne(), osl::eval::ml::KnightFork::eval(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttacked::eval(), osl::eval::ml::NonPawnAttackedPtypePair::evalOne(), osl::eval::ml::KnightFork::evalWithUpdate(), osl::NumEffectState::findThreatenedPiece(), osl::NumEffectState::selectCheapPiece(), osl::progress::ml::NewProgress::updateAttack5x5Pieces(), osl::progress::ml::NewProgress::updateNonPawnAttackedPtypePairOne(), と osl::progress::ml::NewProgress::updatePawnFacing().
void osl::PieceMask::set | ( | int | num | ) | [inline] |
pieceMask.h の 48 行で定義されています。
参照先 mutableMaskNum(), と numToMask().
参照元 osl::eval::See::findEffectPiecesAfterMove(), osl::NumEffectState::makePinOpenDir(), osl::NumEffectState::NumEffectState(), osl::NumEffectState::prologueCapture(), osl::NumEffectState::prologueSimple(), osl::SimpleState::setPiece(), osl::SimpleState::setPieceAll(), と osl::move_probability::ToEffect::supportAttack().
void osl::PieceMask::setBit | ( | ) | [inline] |
unpromote(PTYPE) の駒のbit を立てる
pieceMask.h の 81 行で定義されています。
void osl::PieceMask::setMask | ( | int | index, | |
mask_t | val | |||
) | [inline] |
pieceMask.h の 28 行で定義されています。
bool osl::PieceMask::test | ( | int | num | ) | const [inline] |
pieceMask.h の 45 行で定義されています。
参照先 getMaskNum(), と numToMask().
参照元 osl::book::CompactBoard::CompactBoard(), osl::eval::See::computeValue(), osl::eval::ml::NonPawnAttackedPtype::eval(), osl::eval::ml::NonPawnAttackedPtype::evalWithUpdateBang(), osl::move_generator::capture::generate(), osl::checkmate::Dfpn::generateCheck(), osl::move_generator::detail::generateDir(), osl::move_generator::detail::generateDirNotKing(), osl::move_generator::detail::generateMoveToPtypeMaskWithPieceMask(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiece(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtype(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtype(), osl::move_generator::detail::generateRookLongMove(), osl::move_generator::detail::generateRookLongMoveNotKing(), osl::hash::HashKey::HashKey(), osl::SimpleState::isConsistent(), osl::NumEffectState::isConsistent(), osl::move_classifier::KingOpenMove< P >::isMember(), osl::SimpleState::isOffBoard(), osl::NumEffectState::isOnBoardNum(), osl::NumEffectState::makePinOpenDir(), osl::book::MiniBoard::MiniBoard(), osl::progress::PtypeProgress::PtypeProgress(), osl::SimpleState::setPiece(), osl::SimpleState::setPieceAll(), osl::NumEffectState::showEffect(), osl::move_probability::PatternCommon::updateCacheOne(), と osl::eval::ml::NonPawnAttackedPtype::updateChanged().
void osl::PieceMask::xorMask | ( | int | index, | |
mask_t | val | |||
) | [inline] |