#include <ptypeTable.h>
Public メソッド | |
PtypeTable () | |
unsigned int | getShortMoveMask (Player p, PtypeO ptypeo, Direction dir) const |
mask_t | getMaskLow (Ptype ptype) const |
int | getIndex (Ptype) const |
bool | hasLongMove (Ptype ptype) const |
遅くて良い? | |
bool | isBetterToPromote (Ptype ptype) const |
int | getCanDropLimit (Player player, Ptype ptype) const |
bool | canDropTo (Player pl, Ptype ptype, Square pos) const |
const char * | getName (Ptype ptype) const |
const char * | getCsaName (Ptype ptype) const |
int | getMoveMask (Ptype ptype) const |
int | getIndexMin (Ptype ptype) const |
int | getIndexLimit (Ptype ptype) const |
const EffectContent | getEffect (PtypeO ptypeo, Square from, Square to) const |
fromにいるptypeoがtoに利きを持つか? | |
const EffectContent & | getEffect (PtypeO ptypeo, Offset32 offset32) const |
const EffectContent | getEffectNotLongU (PtypeO ptypeo, Square from, Square to) const |
ptypeo が,自分から offset のところに効きを持つか? U除く | |
bool | hasUnblockableEffect (PtypeO attacker, Square from, Square to) const |
Static Public メソッド | |
static int | getKingIndex (Player p) |
Private メソッド | |
template<Ptype T> | |
void | initPtypeSub (Int2Type< false > isBasic) |
template<Ptype T> | |
void | initPtypeSub (Int2Type< true > isBasic) |
template<Ptype T> | |
void | initPtype () |
void | init () |
EffectContent & | effect (PtypeO ptypeo, Offset32 offset32) |
Private 変数 | |
CArray< mask_t, PTYPE_SIZE > | numMaskLows |
CArray< int, PTYPE_SIZE > | numIndices |
CArray< const char *, PTYPE_SIZE > | names |
CArray< const char *, PTYPE_SIZE > | csaNames |
CArray< bool, PTYPE_SIZE > | betterToPromote |
CArray< int, PTYPE_SIZE > | moveMasks |
CArray< int, PTYPE_SIZE > | indexMins |
CArray< int, PTYPE_SIZE > | indexLimits |
CArray2d< int, 2, PTYPE_SIZE > | canDropLimit |
CArray2d< EffectContent, PTYPEO_SIZE, Offset32::SIZE > | effectTable |
CArray2d< EffectContent, PTYPEO_SIZE, Offset32::SIZE > | effectTableNotLongU |
CArray2d< unsigned int, 2, SHORT_DIRECTION_SIZE > | shortMoveMask |
ptypeTable.h の 15 行で定義されています。
osl::PtypeTable::PtypeTable | ( | ) |
ptypeTable.cc の 6 行で定義されています。
参照先 osl::BLACK, osl::EffectContent::DIRECT(), effect(), getEffect(), init(), osl::newPtypeO(), osl::PPAWN, osl::ROOK, と osl::WHITE.
ptypeTable.h の 68 行で定義されています。
参照先 osl::BLACK, getCanDropLimit(), osl::WHITE, と osl::Square::y().
参照元 osl::effect_action::BetterToPromote< Action >::doAction(), osl::effect_action::AlwaysMove< Action >::doAction(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePieceUnsafe(), と osl::SimpleState::isValidMoveByRule().
EffectContent& osl::PtypeTable::effect | ( | PtypeO | ptypeo, | |
Offset32 | offset32 | |||
) | [inline, private] |
ptypeTable.h の 123 行で定義されています。
参照先 effectTable, osl::Offset32Base< Width, Width2 >::index(), と osl::isValidPtypeO().
参照元 hasUnblockableEffect(), init(), と PtypeTable().
ptypeTable.h の 62 行で定義されています。
参照先 canDropLimit, osl::isPromoted(), osl::isValid(), と osl::playerToIndex().
参照元 canDropTo().
const char* osl::PtypeTable::getCsaName | ( | Ptype | ptype | ) | const [inline] |
ptypeTable.h の 80 行で定義されています。
参照先 csaNames.
参照元 osl::rating::DropPtype::name(), osl::rating::RelativeKingY::name(), osl::rating::RelativeKingX::name(), osl::rating::PinAttack::name(), osl::rating::PatternLong2::name(), osl::rating::PatternLong::name(), osl::rating::LongTarget2::name(), osl::rating::LongTarget::name(), osl::rating::Pattern::name(), osl::rating::DefenseKing8::name(), osl::rating::AttackKing8::name(), osl::rating::Chase::name(), osl::csa::show(), と osl::csa::strToPtype().
const EffectContent osl::PtypeTable::getEffect | ( | PtypeO | ptypeo, | |
Square | from, | |||
Square | to | |||
) | const [inline] |
fromにいるptypeoがtoに利きを持つか?
ptypeo | - 駒の種類 | |
from | - 駒の位置 | |
to | - 利きをチェックするマスの位置 |
ptypeTable.h の 112 行で定義されています。
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::FixedDepthSearcher::defenseEstimation(), osl::effect_util::AdditionalEffect::find(), osl::eval::See::findAdditionalPieces(), osl::checkmate::Dfpn::generateCheck(), osl::NumEffectState::hasEffectIf(), hasUnblockableEffect(), osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), osl::effect_util::SendOffSquare::Table::init(), init(), osl::NumEffectState::inUnblockableCheck(), osl::SimpleState::isAlmostValidMove(), osl::move_probability::BreakThreatmate::isDefendingThreatmate(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), osl::SimpleState::isValidMoveByRule(), と PtypeTable().
const EffectContent& osl::PtypeTable::getEffect | ( | PtypeO | ptypeo, | |
Offset32 | offset32 | |||
) | const [inline] |
ptypeTable.h の 117 行で定義されています。
参照先 effectTable, osl::Offset32Base< Width, Width2 >::index(), と osl::isValidPtypeO().
const EffectContent osl::PtypeTable::getEffectNotLongU | ( | PtypeO | ptypeo, | |
Square | from, | |||
Square | to | |||
) | const [inline] |
ptypeo が,自分から offset のところに効きを持つか? U除く
ptypeTable.h の 133 行で定義されています。
参照先 effectTableNotLongU, osl::Square::isOnBoard(), と osl::isValidPtypeO().
int osl::PtypeTable::getIndex | ( | Ptype | ) | const [inline] |
int osl::PtypeTable::getIndexLimit | ( | Ptype | ptype | ) | const [inline] |
int osl::PtypeTable::getIndexMin | ( | Ptype | ptype | ) | const [inline] |
ptypeTable.h の 88 行で定義されています。
参照先 indexMins, と osl::isBasic().
参照元 osl::PieceStand::canAdd(), osl::eval::ml::PieceStand::eval(), osl::eval::ml::PieceStand::evalWithUpdate(), hasLongMove(), osl::eval::ml::PieceStandY::index(), osl::eval::ml::NonPawnPieceStandTurn::index(), osl::eval::ml::PtypeCount::indexBoardCount(), osl::eval::ml::PtypeCount::indexBoardCountX(), osl::eval::ml::PtypeCount::indexBoardCountY(), osl::eval::ml::PtypeCount::indexCount(), osl::eval::ml::PtypeCount::indexCountX(), osl::eval::ml::PtypeCount::indexCountY(), osl::book::MiniBoardChar50::MiniBoardChar50(), osl::progress::ml::NewProgress::NewProgress(), osl::eval::ml::PtypeCountXYAttack::setUp(), osl::eval::ml::PtypeCountXY::setUp(), osl::eval::ml::PieceStandY::setUp(), と osl::progress::ml::NewProgress::updateMain().
static int osl::PtypeTable::getKingIndex | ( | Player | p | ) | [inline, static] |
ptypeTable.h の 98 行で定義されています。
参照先 osl::BLACK, と osl::isValid().
mask_t osl::PtypeTable::getMaskLow | ( | Ptype | ptype | ) | const [inline] |
int osl::PtypeTable::getMoveMask | ( | Ptype | ptype | ) | const [inline] |
ptypeTable.h の 84 行で定義されています。
参照先 moveMasks.
参照元 osl::effect::EffectedNumTable::EffectedNumTable(), osl::NumEffectState::forEachEffectOfPtypeO(), osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), osl::checkmate::ProofNumberTable::init(), osl::effect_util::Neighboring8Direct::Table::init(), osl::move_probability::AddEffectLong::match(), osl::mobility::MobilityTable::MobilityTable(), と osl::move_probability::StateInfo::updatePinnedGenerals().
const char* osl::PtypeTable::getName | ( | Ptype | ptype | ) | const [inline] |
unsigned int osl::PtypeTable::getShortMoveMask | ( | Player | p, | |
PtypeO | ptypeo, | |||
Direction | dir | |||
) | const [inline] |
ptypeTable.h の 41 行で定義されています。
bool osl::PtypeTable::hasLongMove | ( | Ptype | ptype | ) | const [inline] |
遅くて良い?
ptypeTable.h の 54 行で定義されています。
参照先 getIndexMin(), と osl::unpromote().
参照元 osl::checkmate::OracleAdjust::attack(), osl::effect_util::Neighboring8Direct::Table::findNearest(), osl::effect_util::Neighboring8Direct::Table::hasEffect(), osl::effect_util::Neighboring8Direct::hasEffectNaive(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), と osl::rating::ImmediateAddSupport::index().
bool osl::PtypeTable::hasUnblockableEffect | ( | PtypeO | attacker, | |
Square | from, | |||
Square | to | |||
) | const [inline] |
ptypeTable.h の 140 行で定義されています。
参照先 effect(), getEffect(), と osl::EffectContent::hasUnblockableEffect().
void osl::PtypeTable::init | ( | ) | [private] |
ptypeTable.cc の 53 行で定義されています。
参照先 osl::BLACK, osl::Board_Table, osl::EffectContent::DIRECT(), osl::DIRECTION_MIN, effect(), effectTable, effectTableNotLongU, osl::CArray< T, Capacity >::fill(), osl::BoardTable::getDxForBlack(), osl::BoardTable::getDyForBlack(), getEffect(), osl::Offset32Base< Width, Width2 >::index(), osl::isLong(), osl::LONG_U, moveMasks, osl::newOffset(), osl::newPtypeO(), numIndices, numMaskLows, osl::PTYPE_MIN, osl::ROOK, shortMoveMask, osl::static_assert(), と osl::WHITE.
参照元 PtypeTable().
void osl::PtypeTable::initPtype | ( | ) | [private] |
ptypeTable.cc の 48 行で定義されています。
参照先 osl::isBasic().
void osl::PtypeTable::initPtypeSub | ( | Int2Type< true > | isBasic | ) | [private] |
黒
白
ptypeTable.cc の 21 行で定義されています。
参照先 canDropLimit, osl::canPromote(), indexLimits, indexMins, numIndices, numMaskLows, osl::promote(), と osl::Square::reverseY().
void osl::PtypeTable::initPtypeSub | ( | Int2Type< false > | isBasic | ) | [private] |
ptypeTable.cc の 39 行で定義されています。
参照先 betterToPromote, csaNames, moveMasks, と names.
bool osl::PtypeTable::isBetterToPromote | ( | Ptype | ptype | ) | const [inline] |
CArray<bool, PTYPE_SIZE> osl::PtypeTable::betterToPromote [private] |
ptypeTable.h の 22 行で定義されています。
参照元 initPtypeSub(), と isBetterToPromote().
CArray2d<int, 2, PTYPE_SIZE> osl::PtypeTable::canDropLimit [private] |
ptypeTable.h の 27 行で定義されています。
参照元 getCanDropLimit(), と initPtypeSub().
CArray<const char *, PTYPE_SIZE> osl::PtypeTable::csaNames [private] |
ptypeTable.h の 21 行で定義されています。
参照元 getCsaName(), と initPtypeSub().
CArray2d<EffectContent,PTYPEO_SIZE,Offset32::SIZE> osl::PtypeTable::effectTable [private] |
ptypeTable.h の 29 行で定義されています。
参照元 effect(), getEffect(), と init().
CArray2d<EffectContent,PTYPEO_SIZE,Offset32::SIZE> osl::PtypeTable::effectTableNotLongU [private] |
ptypeTable.h の 30 行で定義されています。
参照元 getEffectNotLongU(), と init().
CArray<int, PTYPE_SIZE> osl::PtypeTable::indexLimits [private] |
ptypeTable.h の 25 行で定義されています。
参照元 getIndexLimit(), と initPtypeSub().
CArray<int, PTYPE_SIZE> osl::PtypeTable::indexMins [private] |
ptypeTable.h の 24 行で定義されています。
参照元 getIndexMin(), と initPtypeSub().
CArray<int, PTYPE_SIZE> osl::PtypeTable::moveMasks [private] |
ptypeTable.h の 23 行で定義されています。
参照元 getMoveMask(), init(), と initPtypeSub().
CArray<const char *, PTYPE_SIZE> osl::PtypeTable::names [private] |
ptypeTable.h の 20 行で定義されています。
参照元 getName(), と initPtypeSub().
CArray<int, PTYPE_SIZE> osl::PtypeTable::numIndices [private] |
ptypeTable.h の 19 行で定義されています。
参照元 init(), と initPtypeSub().
CArray<mask_t, PTYPE_SIZE> osl::PtypeTable::numMaskLows [private] |
ptypeTable.h の 18 行で定義されています。
参照元 getMaskLow(), init(), と initPtypeSub().
CArray2d<unsigned int, 2, SHORT_DIRECTION_SIZE> osl::PtypeTable::shortMoveMask [private] |
ptypeTable.h の 31 行で定義されています。
参照元 getShortMoveMask(), と init().