My Project
|
#include <boardTable.h>
Public Member Functions | |
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 Square | nextSquare (Player P, Square 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 (Square from, Square to) const |
int | spaceCounts (Square from, Square 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 (Square from, Square to) const |
8方向にいない場合も適当なものを返す. | |
template<Player P> | |
Direction | getShort8Unsafe (Square from, Square to) const |
8方向にいない場合も適当なものを返す. | |
Direction | getShort8Unsafe (Player P, Square from, Square to) const |
template<Player P> | |
Direction | getShort8 (Square from, Square to) const |
template<Player P> | |
Direction | getShort8 (Square from, Square to, Offset &o) const |
bool | isBetween (Square t, Square p0, Square p1) const |
p0, p1の間にtがあるかどうか. | |
bool | isBetweenSafe (Square t, Square p0, Square p1) const |
Static Public Attributes | |
static const CArray< Offset, DIRECTION_SIZE > | offsets |
static const CArray< int, DIRECTION_SIZE > | dxs |
static const CArray< int, DIRECTION_SIZE > | dys |
Private Member Functions | |
template<Direction Dir> | |
void | setDirections () |
template<Direction Dir> | |
void | setKnightDirections () |
void | init () |
Private Attributes | |
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 |
Definition at line 12 of file boardTable.h.
osl::BoardTable::BoardTable | ( | ) |
Definition at line 65 of file boardTable.cc.
References osl::BLACK, and osl::UL.
|
inline |
Definition at line 40 of file boardTable.h.
References dxs.
Referenced by osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), and osl::PtypeTable::init().
|
inline |
Definition at line 43 of file boardTable.h.
References dys.
Referenced by osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), and osl::PtypeTable::init().
P | どちらのPlayerにとっての方向かを指定 |
Definition at line 71 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::blackOffset32(), directions, osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), and osl::isValid().
Referenced by osl::move_probability::BlockLong::addPiece(), osl::effect_util::AdditionalOrShadow::count(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::NumEffectState::hasEffectInDirection(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), and osl::NumEffectState::recalcPinOpen().
Definition at line 79 of file boardTable.h.
References osl::BLACK.
|
inline |
P | どちらのPlayerにとっての方向かを指定 |
Definition at line 88 of file boardTable.h.
Definition at line 47 of file boardTable.h.
References getOffsetForBlack(), and osl::sign().
Referenced by osl::move_probability::AddEffectLong::addOne(), osl::move_probability::KingBlockade::blockAll(), osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::move_probability::StateInfo::clearOldCache(), osl::rating::PatternLong2::find(), osl::move_probability::StateInfo::findCheckmateDefender(), osl::checkmate::EdgeTable::init(), osl::effect_util::Neighboring8Direct::Table::init(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::move_probability::LureDefender::match(), osl::move_probability::CoverPawn::match(), osl::move_probability::KingBlockade::match(), osl::move_probability::OpposingPawn::match(), osl::move_probability::DropAfterOpposingPawn::match(), osl::move_probability::LanceAttack::match(), osl::eval::ml::SilverFork::matchGold(), osl::eval::ml::SilverFork::matchRook(), osl::rating::PatternLong::nextPieceOrEnd(), nextSquare(), osl::Offset::Offset(), and osl::move_probability::StateInfo::updatePinnedGenerals().
Definition at line 50 of file boardTable.h.
References osl::BLACK.
黒にとってのoffsetを返す
Definition at line 37 of file boardTable.h.
References offsets.
Referenced by osl::effect::EffectedNumTable::EffectedNumTable(), getOffset(), osl::effect_util::Neighboring8Direct::hasEffectFromTo(), osl::move_probability::BlockLong::makeLongAttackOne(), osl::mobility::MobilityTable::MobilityTable(), and osl::NumEffectState::recalcPinOpen().
Definition at line 147 of file boardTable.h.
References osl::Square::isOnBoard(), osl::Square::x(), and osl::Square::y().
Referenced by osl::checkmate::ProofNumberTable::countLibertyShortNotKnight(), osl::effect::NumSimpleEffectTable::doBlockAt(), osl::effect_util::AdditionalEffect::hasEffect(), osl::move_classifier::KingOpenMove< P >::isMember(), osl::checkmate::King8Info::make(), and osl::NumEffectState::pinnedDir().
|
inline |
Definition at line 155 of file boardTable.h.
References osl::BLACK, osl::inverse(), osl::Square::isOnBoard(), osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, short8Offset, osl::Square::uintValue(), osl::Square::x(), and osl::Square::y().
8方向にいない場合も適当なものを返す.
Definition at line 126 of file boardTable.h.
References osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Offset, and osl::Square::uintValue().
Definition at line 140 of file boardTable.h.
References osl::BLACK.
|
inline |
8方向にいない場合も適当なものを返す.
Definition at line 134 of file boardTable.h.
References osl::BLACK, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, and osl::Square::uintValue().
Referenced by osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiece(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtype(), osl::move_classifier::KingOpenMove< P >::isMember(), osl::NumEffectState::pinnedCanMoveTo(), and osl::NumEffectState::wasCheckEvasion().
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Shortの利きのoffsetの場合はそれ自身を返す.
利きの可能性のない場合は0を返す
Definition at line 110 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), and short_offsets.
Referenced by osl::rating::PatternBlock::find(), osl::eval::ml::BishopRookFork::findDropInLine(), osl::NumEffectState::hasEffectIf(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), osl::SimpleState::isEmptyBetween(), and osl::SimpleState::isEmptyBetween().
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す.
Knightの利き, 利きの可能性のない場合は0を返す
Definition at line 119 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), and short_offsets_not_knight.
Referenced by osl::checkmate::OracleAdjust::attack(), osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::move_probability::CoverFork::defending(), osl::effect_util::AdditionalEffect::find(), osl::eval::See::findAdditionalPieces(), osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), isBetweenSafe(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), osl::Square::isNeighboring8(), osl::move_probability::BlockLong::makeLongAttackOne(), and osl::move_probability::PromotionBySacrifice::match().
|
private |
Definition at line 45 of file boardTable.cc.
References osl::DIRECTION_INVALID_VALUE.
p0, p1の間にtがあるかどうか.
(t,p0), (t,p1)のどちらかが8方向である時にのみ呼び出すこと 他方も8方向でないとしたらknightの関係
Definition at line 172 of file boardTable.h.
References osl::DIRECTION_INVALID_VALUE, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, and osl::Square::uintValue().
Referenced by osl::move_probability::CoverFork::defending(), isBetweenSafe(), and osl::move_probability::BlockLong::makeLongAttackOne().
Definition at line 179 of file boardTable.h.
References getShortOffsetNotKnight(), and isBetween().
Referenced by osl::NumEffectState::wasCheckEvasion().
next position from pos for player P.
答えが isOnBoard とは限らない
Definition at line 61 of file boardTable.h.
References getOffset(), and osl::Square::isOnBoard().
Referenced by osl::Square::back(), osl::eval::ml::PawnAdvanceUtil::cantAdvance(), osl::rating::Threatmate::captureForKnightCheck(), osl::eval::ml::NumPiecesBetweenBishopAndKing::countBetween(), osl::checkmate::CheckmateIfCapture::effectiveAttackCandidate0(), osl::eval::ml::King8Effect::effectState(), osl::eval::ml::King8EffectAll::effectState(), osl::eval::ml::KnightHead::eval(), osl::eval::ml::PawnPtypeOPtypeO::eval(), osl::rating::BadLanceGroup::findMatch(), osl::rating::BadLance::match(), osl::Square::neighbor(), osl::rating::Pattern::nextSquare(), osl::eval::ml::King8EffectBase::MakeEffectStateSimple::operator()(), and osl::eval::ml::King8EffectBase::MakeEffectStateDefense::operator()().
|
private |
Definition at line 7 of file boardTable.cc.
References directions, osl::Offset32Base< Width, Width2 >::index(), osl::Offset::intValue(), osl::longToShort(), osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, short8Offset, short_offsets, short_offsets_not_knight, and space_counts.
|
private |
Definition at line 36 of file boardTable.cc.
References osl::Offset32Base< Width, Width2 >::index().
fromとtoが長い利きを持つ位置にある時,間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1
Definition at line 99 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), and space_counts.
|
private |
Definition at line 14 of file boardTable.h.
Referenced by getLongDirection(), and setDirections().
|
static |
Definition at line 25 of file boardTable.h.
Referenced by getDxForBlack().
|
static |
Definition at line 26 of file boardTable.h.
Referenced by getDyForBlack().
|
static |
Definition at line 24 of file boardTable.h.
Referenced by getOffsetForBlack().
|
private |
Definition at line 17 of file boardTable.h.
Referenced by getShort8(), getShort8Unsafe(), isBetween(), and setDirections().
|
private |
Definition at line 16 of file boardTable.h.
Referenced by getShort8(), getShort8OffsetUnsafe(), and setDirections().
|
private |
Definition at line 18 of file boardTable.h.
Referenced by getShortOffset(), and setDirections().
|
private |
Definition at line 19 of file boardTable.h.
Referenced by getShortOffsetNotKnight(), and setDirections().
|
private |
Definition at line 21 of file boardTable.h.
Referenced by setDirections(), and spaceCounts().