#include <boardTable.h>

Public メソッド | |
| const Offset | getOffsetForBlack (Direction dir) const |
| 黒にとってのoffsetを返す | |
| int | getDxForBlack (Direction dir) const |
| int | getDyForBlack (Direction dir) const |
| template<Player P> | |
| const Offset | getOffset (Direction dir) const |
| const Offset | getOffset (Player pl, Direction dir) const |
| const Position | nextPosition (Player P, Position pos, Direction dr) const |
| next position from pos for player P. | |
| BoardTable () | |
| template<Player P> | |
| Direction | getLongDirection (Offset32 offset32) const |
| Direction | getLongDirection (Player P, Offset32 offset32) const |
| template<Player P> | |
| Direction | getLongDirection (Position from, Position to) const |
| int | spaceCounts (Position from, Position to) const |
| fromとtoが長い利きを持つ位置にある時,間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1 | |
| const Offset | getShortOffset (Offset32 offset32) const |
| Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Shortの利きのoffsetの場合はそれ自身を返す. | |
| const Offset | getShortOffsetNotKnight (Offset32 offset32) const |
| Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す. | |
| Offset | getShort8OffsetUnsafe (Position from, Position to) const |
| 8方向にいない場合も適当なものを返す. | |
| template<Player P> | |
| Direction | getShort8Unsafe (Position from, Position to) const |
| 8方向にいない場合も適当なものを返す. | |
| template<Player P> | |
| Direction | getShort8 (Position from, Position to) const |
| template<Player P> | |
| Direction | getShort8 (Position from, Position to, Offset &o) const |
| bool | isBetween (Position t, Position p0, Position p1) const |
| p0, p1の間にtがあるかどうか. | |
Static Public 変数 | |
| static const CArray< Offset, DIRECTION_SIZE > | offsets |
| static const CArray< int, DIRECTION_SIZE > | dxs |
| static const CArray< int, DIRECTION_SIZE > | dys |
Private メソッド | |
| template<Direction Dir> | |
| void | setDirections () |
| template<Direction Dir> | |
| void | setKnightDirections () |
| void | init () |
Private 変数 | |
| CArray< Direction, Offset32::SIZE > | directions |
| CArray< signed char, Offset::ONBOARD_OFFSET_SIZE > | short8Offset |
| CArray< unsigned char, Offset::ONBOARD_OFFSET_SIZE > | short8Dir |
| CArray< Offset, Offset32::SIZE > | short_offsets |
| CArray< Offset, Offset32::SIZE > | short_offsets_not_knight |
| CArray< int, Offset32Wide::SIZE > | space_counts |
boardTable.h の 12 行で定義されています。
| osl::BoardTable::BoardTable | ( | ) |
boardTable.cc の 65 行で定義されています。
参照先 osl::BLACK, getOffset(), init(), と osl::UL.
| int osl::BoardTable::getDxForBlack | ( | Direction | dir | ) | const [inline] |
| int osl::BoardTable::getDyForBlack | ( | Direction | dir | ) | const [inline] |
| Direction osl::BoardTable::getLongDirection | ( | Position | from, | |
| Position | to | |||
| ) | const [inline] |
| P | どちらのPlayerにとっての方向かを指定 |
boardTable.h の 88 行で定義されています。
boardTable.h の 79 行で定義されています。
参照先 osl::BLACK.
| P | どちらのPlayerにとっての方向かを指定 |
boardTable.h の 71 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::blackOffset32(), directions, osl::isValid(), と osl::Offset32Base< Width, Width2 >::isValid().
参照元 osl::effect_util::AdditionalOrShadow::count(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::effect::directionOf(), osl::eval::TakeBackValue::findEffectPiecesAfterMove(), osl::move_action::EscapeFilter< P, OrigAction >::findThreat(), osl::move_generator::without_effect::generateLongMove(), osl::move_generator::addeffect8::generateLongMove(), osl::state::NumEffectState::hasEffectByWithRemove(), osl::state::NumEffectState::hasEffectDir(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), osl::effect::AddMaskAction< Liberty, P, T >::operator()(), osl::state::NumEffectState::recalcPinOpen(), と osl::move_action::EscapeFilter< P, OrigAction >::suitable().
boardTable.h の 50 行で定義されています。
参照先 osl::BLACK.
boardTable.h の 47 行で定義されています。
参照先 getOffsetForBlack(), と osl::playerToMul().
参照元 BoardTable(), osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::checkmate::EdgeTable::EdgeTable(), osl::rating::PatternLong2::find(), osl::effect_util::VirtualPin::findDirection(), osl::effect_util::Pin::findDirection(), osl::search::BreakThreatmate::generate(), osl::move_generator::OpenKingRoad< P >::generateDir(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), osl::effect_util::Neighboring8Effect::Table::init(), osl::effect_util::Neighboring8Direct::Table::init(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::eval::ml::SilverFork::matchGold(), osl::eval::ml::SilverFork::matchRook(), osl::rating::PatternLong::nextPieceOrEnd(), nextPosition(), osl::effect::AddMaskAction< Liberty, P, T >::operator()(), osl::checkmate::detail::slowCheckDrop(), と osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().
黒にとってのoffsetを返す
boardTable.h の 37 行で定義されています。
参照先 offsets.
参照元 osl::effect::EffectedNumTable::EffectedNumTable(), osl::move_generator::CaptureEffectToAroundKing8< P >::generate(), osl::move_generator::AddEffect8Defense< P >::generate(), getOffset(), osl::effect_util::Neighboring8Effect::hasEffectFromTo(), osl::effect_util::Neighboring8Direct::hasEffectFromTo(), osl::move_action::ToAroundKing24Filter< P, OrigAction >::isToAroundKing24Move(), osl::move_action::ToAroundKing8Filter< P, OrigAction >::isToAroundKing8Move(), と osl::state::NumEffectState::recalcPinOpen().
| Direction osl::BoardTable::getShort8 | ( | Position | from, | |
| Position | to | |||
| ) | const [inline] |
boardTable.h の 141 行で定義されています。
参照先 osl::Position::isOnBoard(), osl::Position::x(), と osl::Position::y().
参照元 osl::checkmate::ProofNumberTable::countLibertyShortNotKnight(), osl::effect::NumSimpleEffectTable::doBlockAt(), osl::effect_util::AdditionalEffect::hasEffect(), osl::move_classifier::KingOpenMove< P >::isMember(), osl::checkmate::King8Info::make(), と osl::state::NumEffectState::pinnedDir().
8方向にいない場合も適当なものを返す.
boardTable.h の 126 行で定義されています。
参照先 osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Offset, と osl::Position::uintValue().
参照元 osl::checkmate::detail::blockingDiagonalAttack(), と osl::move_generator::detail::generateOpenOrCapture().
| Direction osl::BoardTable::getShort8Unsafe | ( | Position | from, | |
| Position | to | |||
| ) | const [inline] |
8方向にいない場合も適当なものを返す.
boardTable.h の 134 行で定義されています。
参照先 osl::BLACK, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, と osl::Position::uintValue().
参照元 osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiece(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtype(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece(), osl::move_classifier::KingOpenMove< P >::isMember(), と osl::state::NumEffectState::pinnedCanMoveTo().
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Shortの利きのoffsetの場合はそれ自身を返す.
利きの可能性のない場合は0を返す
boardTable.h の 110 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), と short_offsets.
参照元 osl::move_generator::detail::blockingU(), osl::move_generator::addeffect8::canAddLongEffect(), osl::search::QuiescenceGenerator< P >::escapeByMoveOnly(), osl::search::QuiescenceGenerator< P >::escapeNormalPiece(), osl::rating::PatternBlock::find(), osl::eval::ml::BishopRookFork::findDropInLine(), osl::search::BreakThreatmate::generate(), osl::move_generator::Escape< Action >::generateBlocking(), osl::move_generator::Escape< Action >::generateBlockingKing(), osl::move_generator::without_effect::generateLongMove(), osl::effect_util::Neighboring8Effect::Table::hasAtMaxPieceBetween(), osl::state::NumEffectState::hasEffectFromTo(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), osl::effect::hasShortMove(), osl::state::SimpleState::isEmptyBetween(), osl::move_generator::without_effect::isEmptyOrAdditional(), と osl::move_classifier::BlockLongEffect< P, T >::isMember().
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す.
Knightの利き, 利きの可能性のない場合は0を返す
boardTable.h の 119 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), と short_offsets_not_knight.
参照元 osl::checkmate::OracleAdjust::attack(), osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::effect_util::AdditionalEffect::find(), osl::eval::See::findAdditionalPieces(), osl::search::BreakThreatmate::findBlockLong(), osl::eval::TakeBackValue::findEffectPiecesAfterMove(), osl::search::BreakThreatmate::generate(), osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), と osl::Neighboring8::isNeighboring8().
| void osl::BoardTable::init | ( | ) | [private] |
boardTable.cc の 45 行で定義されています。
参照先 osl::DIRECTION_INVALID_VALUE, directions, short8Dir, short8Offset, short_offsets_not_knight, と space_counts.
参照元 BoardTable().
p0, p1の間にtがあるかどうか.
(t,p0), (t,p1)のどちらかが8方向である時にのみ呼び出すこと 他方も8方向でないとしたらknightの関係
boardTable.h の 166 行で定義されています。
参照先 osl::DIRECTION_INVALID_VALUE, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, と osl::Position::uintValue().
参照元 osl::checkmate::detail::slowCheckDrop(), と osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().
| const Position osl::BoardTable::nextPosition | ( | Player | P, | |
| Position | pos, | |||
| Direction | dr | |||
| ) | const [inline] |
next position from pos for player P.
答えが isOnBoard とは限らない
boardTable.h の 61 行で定義されています。
参照先 getOffset(), と osl::Position::isOnBoard().
参照元 osl::search::QuiescenceGenerator< P >::breakThreatmate(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateGoldPenalty(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateSilverPenalty(), osl::eval::ml::PawnAdvanceUtil::cantAdvance(), osl::rating::Threatmate::captureForKnightCheck(), osl::eval::ml::NumPiecesBetweenBishopAndKing::countBetween(), osl::checkmate::CheckmateIfCapture::effectiveAttackCandidate0(), osl::eval::ml::King8EffectAll::effectState(), osl::eval::ml::King8Effect::effectState(), osl::eval::ml::KnightHead::eval(), osl::eval::ml::PawnPtypeOPtypeO::eval(), osl::eval::ml::GoldFeatures::evalOne(), osl::effect_util::UnblockableEffect::find(), osl::rating::BadLanceGroup::findMatch(), osl::rating::BadLance::match(), osl::rating::Pattern::nextPosition(), osl::eval::ml::King8EffectBase::MakeEffectStateDefense::operator()(), と osl::eval::ml::King8EffectBase::MakeEffectStateSimple::operator()().
| void osl::BoardTable::setDirections | ( | ) | [inline, private] |
| void osl::BoardTable::setKnightDirections | ( | ) | [inline, private] |
boardTable.cc の 36 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), と short_offsets.
fromとtoが長い利きを持つ位置にある時,間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1
boardTable.h の 99 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), と space_counts.
CArray<Direction,Offset32::SIZE> osl::BoardTable::directions [private] |
boardTable.h の 14 行で定義されています。
参照元 getLongDirection(), init(), と setDirections().
const CArray< int, DIRECTION_SIZE > osl::BoardTable::dxs [static] |
{ {
DirectionTraits<static_cast<Direction>(0)>::blackDx,
DirectionTraits<static_cast<Direction>(1)>::blackDx,
DirectionTraits<static_cast<Direction>(2)>::blackDx,
DirectionTraits<static_cast<Direction>(3)>::blackDx,
DirectionTraits<static_cast<Direction>(4)>::blackDx,
DirectionTraits<static_cast<Direction>(5)>::blackDx,
DirectionTraits<static_cast<Direction>(6)>::blackDx,
DirectionTraits<static_cast<Direction>(7)>::blackDx,
DirectionTraits<static_cast<Direction>(8)>::blackDx,
DirectionTraits<static_cast<Direction>(9)>::blackDx,
DirectionTraits<static_cast<Direction>(10)>::blackDx,
DirectionTraits<static_cast<Direction>(11)>::blackDx,
DirectionTraits<static_cast<Direction>(12)>::blackDx,
DirectionTraits<static_cast<Direction>(13)>::blackDx,
DirectionTraits<static_cast<Direction>(14)>::blackDx,
DirectionTraits<static_cast<Direction>(15)>::blackDx,
DirectionTraits<static_cast<Direction>(16)>::blackDx,
DirectionTraits<static_cast<Direction>(17)>::blackDx
} }
boardTable.h の 25 行で定義されています。
参照元 getDxForBlack().
const CArray< int, DIRECTION_SIZE > osl::BoardTable::dys [static] |
{ {
DirectionTraits<static_cast<Direction>(0)>::blackDy,
DirectionTraits<static_cast<Direction>(1)>::blackDy,
DirectionTraits<static_cast<Direction>(2)>::blackDy,
DirectionTraits<static_cast<Direction>(3)>::blackDy,
DirectionTraits<static_cast<Direction>(4)>::blackDy,
DirectionTraits<static_cast<Direction>(5)>::blackDy,
DirectionTraits<static_cast<Direction>(6)>::blackDy,
DirectionTraits<static_cast<Direction>(7)>::blackDy,
DirectionTraits<static_cast<Direction>(8)>::blackDy,
DirectionTraits<static_cast<Direction>(9)>::blackDy,
DirectionTraits<static_cast<Direction>(10)>::blackDy,
DirectionTraits<static_cast<Direction>(11)>::blackDy,
DirectionTraits<static_cast<Direction>(12)>::blackDy,
DirectionTraits<static_cast<Direction>(13)>::blackDy,
DirectionTraits<static_cast<Direction>(14)>::blackDy,
DirectionTraits<static_cast<Direction>(15)>::blackDy,
DirectionTraits<static_cast<Direction>(16)>::blackDy,
DirectionTraits<static_cast<Direction>(17)>::blackDy
} }
boardTable.h の 26 行で定義されています。
参照元 getDyForBlack().
const CArray< Offset, DIRECTION_SIZE > osl::BoardTable::offsets [static] |
{ {
DirectionTraits<static_cast<Direction>(0)>::blackOffset(),
DirectionTraits<static_cast<Direction>(1)>::blackOffset(),
DirectionTraits<static_cast<Direction>(2)>::blackOffset(),
DirectionTraits<static_cast<Direction>(3)>::blackOffset(),
DirectionTraits<static_cast<Direction>(4)>::blackOffset(),
DirectionTraits<static_cast<Direction>(5)>::blackOffset(),
DirectionTraits<static_cast<Direction>(6)>::blackOffset(),
DirectionTraits<static_cast<Direction>(7)>::blackOffset(),
DirectionTraits<static_cast<Direction>(8)>::blackOffset(),
DirectionTraits<static_cast<Direction>(9)>::blackOffset(),
DirectionTraits<static_cast<Direction>(10)>::blackOffset(),
DirectionTraits<static_cast<Direction>(11)>::blackOffset(),
DirectionTraits<static_cast<Direction>(12)>::blackOffset(),
DirectionTraits<static_cast<Direction>(13)>::blackOffset(),
DirectionTraits<static_cast<Direction>(14)>::blackOffset(),
DirectionTraits<static_cast<Direction>(15)>::blackOffset(),
DirectionTraits<static_cast<Direction>(16)>::blackOffset(),
DirectionTraits<static_cast<Direction>(17)>::blackOffset()
} }
boardTable.h の 24 行で定義されています。
参照元 getOffsetForBlack().
CArray<unsigned char,Offset::ONBOARD_OFFSET_SIZE> osl::BoardTable::short8Dir [private] |
boardTable.h の 17 行で定義されています。
参照元 getShort8(), getShort8Unsafe(), init(), isBetween(), と setDirections().
CArray<signed char,Offset::ONBOARD_OFFSET_SIZE> osl::BoardTable::short8Offset [private] |
boardTable.h の 16 行で定義されています。
参照元 getShort8(), getShort8OffsetUnsafe(), init(), と setDirections().
CArray<Offset, Offset32::SIZE> osl::BoardTable::short_offsets [private] |
boardTable.h の 18 行で定義されています。
参照元 getShortOffset(), setDirections(), と setKnightDirections().
CArray<Offset, Offset32::SIZE> osl::BoardTable::short_offsets_not_knight [private] |
boardTable.h の 19 行で定義されています。
CArray<int,Offset32Wide::SIZE> osl::BoardTable::space_counts [private] |
boardTable.h の 21 行で定義されています。
参照元 init(), setDirections(), と spaceCounts().
1.6.3