#include <position.h>
Public 型 | |
enum | { PIECE_STAND = 0, MIN = 0, SIZE = 0x100 } |
Public メソッド | |
unsigned int | uintValue () const |
Position () | |
Position (int x, int y) | |
int | x () const |
将棋としてのX座標を返す. | |
int | y () const |
将棋としてのY座標を返す. | |
int | y1 () const |
y+1を返す | |
unsigned int | index () const |
int | indexForOffset32 () const |
bool | isPieceStand () const |
bool | isOnBoardSlow () const |
bool | isOnBoard () const |
盤面上を表すかどうかの判定. 1<=x() && x()<=9 && 1<=y() && y()<=9 Positionの内部表現に依存する. | |
bool | isEdge () const |
onBoardから8近傍のオフセットを足した点がedgeかどうかの判定 そこそこ速くなった. | |
bool | isValid () const |
const Position | positionForBlackSlow (Player player) const |
const Position | positionForBlack (Int2Type< BLACK >) const |
const Position | positionForBlack (Int2Type< WHITE >) const |
template<Player P> | |
const Position | positionForBlack () const |
後手の場合は盤面を引っくり返す. | |
const Position | positionForBlack (Player player) const |
const Position | rotate180 () const |
const Position | rotate180EdgeOK () const |
const Position | rotate180Safe () const |
const Position | flipHorizontal () const |
bool | isOnBoardRegion () const |
posがONBOARD_MINとONBOARD_MAXの間にある | |
Position & | operator++ () |
template<Player P> | |
bool | canPromote () const |
bool | canPromote (Player player) const |
bool | isULRD (Position pos) const |
2つのPosition(onBoardであることが前提)が, xが等しいかyが等しい | |
bool | isUD (Position pos) const |
2つのPosition(onBoardであることが前提)のxが等しい | |
template<Player P> | |
bool | isU (Position pos) const |
posがPlayer Pにとって上 | |
bool | isLR (Position pos) const |
2つのPosition(onBoardであることが前提)のyが等しい | |
Position & | operator+= (Offset offset) |
Position & | operator-= (Offset offset) |
const Position | operator+ (Offset offset) const |
const Position | operator- (Offset offset) const |
const Offset | operator- (Position other) const |
template<int Y> | |
bool | yEq () |
template<int Y> | |
bool | yLe (typename boost::enable_if_c< Y!=2 >::type *=0) |
template<int Y> | |
bool | yLe (typename boost::enable_if_c< Y==2 >::type *=0) |
template<int Y> | |
bool | yGe (typename boost::enable_if_c< Y!=7 >::type *=0) |
template<int Y> | |
bool | yGe (typename boost::enable_if_c< Y==7 >::type *=0) |
Static Public メソッド | |
static const Position | makeDirect (int value) |
static const Position | STAND () |
static const Position | makeNoCheck (int x, int y) |
assertなしに作る | |
static const Position | nth (unsigned int i) |
static unsigned int | indexMax () |
static const Position | onBoardMax () |
static const Position | onBoardMin () |
static int | reverseX (int x) |
static int | reverseY (int y) |
template<Player P> | |
static bool | canPromoteY (int y) |
Private メソッド | |
Position (int p) | |
bool | canPromote (Int2Type< BLACK >) const |
bool | canPromote (Int2Type< WHITE >) const |
Static Private メソッド | |
template<Player P> | |
static bool | canPromoteY (int y, Int2Type< P >) |
static bool | canPromoteY (int y, Int2Type< BLACK >) |
static bool | canPromoteY (int y, Int2Type< WHITE >) |
Private 変数 | |
unsigned int | position |
position.h の 40 行で定義されています。
anonymous enum |
position.h の 49 行で定義されています。
osl::Position::Position | ( | int | p | ) | [inline, explicit, private] |
position.h の 43 行で定義されています。
osl::Position::Position | ( | ) | [inline] |
position.h の 54 行で定義されています。
参照元 flipHorizontal(), makeDirect(), makeNoCheck(), nth(), onBoardMax(), onBoardMin(), positionForBlack(), positionForBlackSlow(), rotate180EdgeOK(), と STAND().
osl::Position::Position | ( | int | x, | |
int | y | |||
) | [inline] |
position.h の 58 行で定義されています。
bool osl::Position::canPromote | ( | Player | player | ) | const [inline] |
position.h の 199 行で定義されています。
参照先 osl::BLACK.
bool osl::Position::canPromote | ( | ) | const [inline] |
position.h の 196 行で定義されています。
bool osl::Position::canPromote | ( | Int2Type< WHITE > | ) | const [inline, private] |
position.h の 189 行で定義されています。
参照先 uintValue().
bool osl::Position::canPromote | ( | Int2Type< BLACK > | ) | const [inline, private] |
position.h の 186 行で定義されています。
参照先 uintValue().
参照元 osl::search::QuiescenceGenerator< P >::attackGoldWithPawn(), osl::search::QuiescenceGenerator< P >::attackKnightWithPawn(), osl::search::QuiescenceGenerator< P >::attackMajorPieceFirstSelection(), osl::search::QuiescenceGenerator< P >::attackSilverWithPawn(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateAttackRooks(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateRookRankBonus(), osl::search::ShouldPromoteCut::canIgnore(), osl::search::QuiescenceGenerator< P >::check(), osl::eval::See::computeValue(), osl::eval::TakeBackValue::computeValue(), osl::effect_action::SimpleMove< Action >::doAction(), osl::effect_action::SimpleBetterToPromote< Action >::doAction(), osl::effect_action::Promote< Action >::doAction(), osl::effect_action::BetterToPromote< Action >::doAction(), osl::effect_action::AlwaysMove< Action >::doAction(), osl::effect_action::SimpleMove< Action >::doActionPtype(), osl::effect_action::SimpleBetterToPromote< Action >::doActionPtype(), osl::effect_action::Promote< Action >::doActionPtype(), osl::effect_action::BetterToPromote< Action >::doActionPtype(), osl::effect_action::AlwaysMove< Action >::doActionPtype(), osl::checkmate::PawnCheckmateMoves::effectiveOnlyIfPawnCheckmate(), osl::eval::ml::RookPawn< Opening >::eval(), osl::move_generator::promote::MayPromoteDir< P, T, noCapture, Dir >::generateIfValid(), osl::move_generator::piece_on_board::generateLong(), osl::move_generator::without_effect::generateLongMove(), osl::move_generator::addeffect8::generateLongMove(), osl::move_generator::without_effect::generateLongMoveDirectCanPromote(), osl::move_generator::without_effect::generateMove(), osl::move_generator::detail::generateMovePiecePtypeMask(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtypeUnsafe(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePieceUnsafe(), osl::move_generator::addeffect8::generateShortMove(), osl::search::BigramKillerMove::getMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece(), osl::Move::ignoreUnpromote(), osl::rating::Karanari::index(), osl::rating::LongTarget::isPromotable(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::progress::Effect5x3WithBonus::makeProgressAreaBonus(), osl::rating::Karanari::match(), osl::rating::Karanari::matchGeneral(), osl::eval::ml::SilverFork::matchGold(), osl::eval::ml::SilverFork::matchRook(), osl::record::ki2::show(), osl::record::psn::showXP(), osl::search::StateElements::validCaptureMove(), と osl::search::StateElements::validSimpleMove().
static bool osl::Position::canPromoteY | ( | int | y | ) | [inline, static] |
static bool osl::Position::canPromoteY | ( | int | y, | |
Int2Type< WHITE > | ||||
) | [inline, static, private] |
position.h の 182 行で定義されています。
static bool osl::Position::canPromoteY | ( | int | y, | |
Int2Type< BLACK > | ||||
) | [inline, static, private] |
position.h の 178 行で定義されています。
static bool osl::Position::canPromoteY | ( | int | y, | |
Int2Type< P > | ||||
) | [inline, static, private] |
const Position osl::Position::flipHorizontal | ( | ) | const [inline] |
unsigned int osl::Position::index | ( | ) | const [inline] |
position.h の 81 行で定義されています。
参照元 osl::hash::HashGenTable::addHashKey(), osl::Centering5x3::adjustCenter(), osl::Centering3x3::adjustCenter(), osl::move_classifier::canAttackInThreeMoves(), osl::PositionCompressor::compress(), osl::effect::NumSimpleEffectTable::doBlockAt(), osl::effect::NumSimpleEffectTable::doEffectLong(), osl::effect::NumSimpleEffectTable::doEffectShort(), osl::search::BigramKillerMove::dump(), osl::checkmate::EdgeTable::EdgeTable(), osl::rating::PatternGroup::findMatch(), osl::progress::Effect5x3Table::getAttackEffect(), osl::effect::BoardBitMaskTable::getBishopMask(), osl::progress::Effect5x3Table::getDefenseEffect(), osl::move_generator::addeffect8::AddEffect8Table::getDropPosition(), osl::effect::NumSimpleEffectTable::getEffect(), osl::effect::BoardBitMaskTable::getLanceMask(), osl::move_generator::addeffect8::AddEffect8Table::getLongDrop2Position(), osl::move_generator::addeffect8::AddEffect8Table::getLongDropDirect(), osl::move_generator::addeffect8::AddEffect8Table::getLongDropPosition(), osl::effect::BoardBitMaskTable::getMask(), osl::state::SimpleState::getPieceAt(), osl::state::SimpleState::getPiecePtr(), osl::effect::BoardBitMaskTable::getRookMask(), osl::rating::CountEffect2::index(), osl::container::BoardMask::index(), osl::effect::BoardBitMaskTable::initBetweenMask(), osl::move_generator::addeffect8::AddEffect8Table::initDropPosition(), osl::move_generator::addeffect8::AddEffect8Table::initLongDropPosition(), osl::effect::BoardBitMaskTable::initMaskOfPosition(), isOnBoardRegion(), osl::eval::endgame::KingPieceTable::kingIndex(), main(), osl::container::BoardMaskTable5x3Center::mask(), osl::container::BoardMaskTable3x3::mask(), osl::container::BoardMaskTable5x5::mask(), osl::search::BigramKillerMove::operator[](), osl::eval::endgame::KingPieceTable::otherIndex(), osl::rating::PatternGroup::PatternGroup(), osl::progress::PtypeProgressTable::progress(), osl::progress::PtypeProgressTable::PtypeProgressTable(), osl::checkmate::EdgeTable::resetEdgeFromLiberty(), osl::ntesuki::Rzone::Rzone(), osl::state::SimpleState::setBoard(), osl::search::BigramKillerMove::setMove(), osl::progress::Effect5x3Table::setupAttackEffect(), osl::progress::Effect5x3Table::setupDefenseEffect(), osl::hash::HashGenTable::subHashKey(), osl::Centering5x3::Table::Table(), osl::Centering3x3::Table::Table(), osl::ntesuki::Rzone::test(), と osl::search::MoveMarker::toIndex().
int osl::Position::indexForOffset32 | ( | ) | const [inline] |
position.h の 83 行で定義されています。
参照先 position.
static unsigned int osl::Position::indexMax | ( | ) | [inline, static] |
bool osl::Position::isEdge | ( | ) | const [inline] |
onBoardから8近傍のオフセットを足した点がedgeかどうかの判定 そこそこ速くなった.
position.h の 100 行で定義されています。
参照先 isPieceStand(), position, x(), と y().
参照元 osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::effect::EffectedNumTable::EffectedNumTable(), osl::move_generator::OpenKingRoad< P >::generateDir(), osl::move_generator::addeffect8::generateShortMove(), と osl::move_generator::CaptureEffectToAroundKing8< P >::generateTo().
bool osl::Position::isLR | ( | Position | pos | ) | const [inline] |
bool osl::Position::isOnBoard | ( | ) | const [inline] |
盤面上を表すかどうかの判定. 1<=x() && x()<=9 && 1<=y() && y()<=9 Positionの内部表現に依存する.
position.h の 92 行で定義されています。
参照先 position.
参照元 adjust(), osl::checkmate::detail::blockingDiagonalAttack(), osl::checkmate::detail::blockingVerticalAttack(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateSilverPenalty(), osl::eval::ml::KnightCheck::canCheck(), osl::eval::ml::GoldFeatures::canMoveToSide(), osl::rating::CountEffect2::count(), osl::state::NumEffectState::countEffect(), osl::mobility::countMobilityBoth(), osl::checkmate::FixedDepthSearcher2::defense(), osl::checkmate::FixedDepthSearcher::defense(), osl::eval::ml::King8EffectAll::effectState(), osl::eval::ml::LanceEffectPieceKingRelative::eval(), osl::eval::ml::PawnPtypeOPtypeO::eval(), osl::eval::ml::RookRookPiece::eval(), osl::eval::ml::GoldFeatures::evalOne(), osl::eval::ml::SilverFeatures::evalOne(), osl::eval::ml::King25EmptyAbs< Opening >::evalOne(), osl::eval::ml::PawnPtypeOPtypeO::evalWithUpdate(), osl::move_generator::Capture< Action >::generate(), osl::move_generator::detail::generateBishopLongMove(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::move_generator::Escape< Action >::generateBlocking(), osl::move_generator::detail::generateDir(), osl::move_generator::detail::generateDirNotKing(), osl::move_generator::detail::generateKnightDir(), osl::move_generator::addeffect8::generateLongMove(), osl::ntesuki::NtesukiRecord::generateMoves(), osl::move_generator::addeffect8::generateShortMove(), osl::move_generator::CaptureEffectToAroundKing8< P >::generateTo(), osl::move_generator::AddEffect8Defense< P >::generateTo(), osl::progress::Effect5x3Table::getAttackEffect(), osl::effect::BoardBitMaskTable::getBishopMask(), osl::progress::Effect5x3Table::getDefenseEffect(), osl::PtypeTable::getEffect(), osl::PtypeTable::getEffectNotLongU(), osl::effect::BoardBitMaskTable::getLanceMask(), osl::effect::Liberty8Table::getLongEffect(), osl::effect::Liberty8Table::getLongEffect2(), osl::effect::BoardBitMaskTable::getMask(), osl::move_generator::AddEffectTable::getNearMask(), osl::move_generator::AddEffectTable::getNearMaskLong(), osl::move_generator::AddEffectTable::getNearMaskPBISHOP(), osl::move_generator::AddEffectTable::getNearMaskPROOK(), osl::move_generator::AddEffectTable::getNearMaskWithPromote(), osl::move_generator::AddEffectTable::getOffsetLong(), osl::move_generator::AddEffectTable::getOffsetPBISHOP(), osl::move_generator::AddEffectTable::getOffsetPROOK(), osl::state::SimpleState::getPieceOnBoard(), osl::effect::BoardBitMaskTable::getRookMask(), osl::BoardTable::getShort8(), osl::effect::Liberty8Table::getShortMask(), osl::effect_util::Neighboring8Effect::Table::hasAtMaxPieceBetween(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), osl::state::NumEffectState::hasEffectBy(), osl::state::NumEffectState::hasEffectByNotPinned(), osl::state::NumEffectState::hasEffectByPiece(), osl::effect_util::Neighboring8Effect::hasEffectFromTo(), osl::effect_util::Neighboring8Direct::hasEffectFromTo(), osl::effect_util::Neighboring25Direct::hasEffectFromTo(), osl::checkmate::detail::hasKnightCheckmate(), osl::rating::CountEffect2::index(), osl::move_generator::addeffect8::AddEffect8Table::initDropPosition(), osl::move_generator::addeffect8::AddEffect8Table::initLongDropPosition(), osl::state::SimpleState::isEmptyBetween(), isLR(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), osl::rating::LongTarget::isPromotable(), isU(), isUD(), isULRD(), isValid(), osl::Move::isValid(), main(), osl::effect_util::Pin::makeByPiece(), osl::effect_util::Pin::makeByPieceKing(), osl::effect_util::Pin::makeNaive(), osl::Move::Move(), osl::rating::PatternLong::nextPieceOrEnd(), osl::rating::Pattern::nextPosition(), osl::BoardTable::nextPosition(), osl::effect::AddMaskAction< Liberty, P, T >::operator()(), osl::eval::ml::PinPtypeAll::pawnAttack(), positionForBlack(), osl::effect::BoardBitMask::positionToOffset(), osl::threatmate::RichPredictor::predict(), osl::ntesuki::Rzone::Rzone(), osl::eval::ml::PiecePair::sanitize(), と osl::ntesuki::NtesukiMoveGenerator::setOrder().
bool osl::Position::isOnBoardRegion | ( | ) | const [inline] |
posがONBOARD_MINとONBOARD_MAXの間にある
position.h の 163 行で定義されています。
参照先 index(), onBoardMax(), と onBoardMin().
bool osl::Position::isOnBoardSlow | ( | ) | const |
position.cc の 9 行で定義されています。
bool osl::Position::isPieceStand | ( | ) | const [inline] |
position.h の 85 行で定義されています。
参照先 PIECE_STAND, と position.
参照元 osl::checkmate::LibertyEstimator::attackH(), osl::checkmate::attackProofCost(), osl::search::ShouldPromoteCut::canIgnore(), osl::eval::PieceEval::computeDiffAfterMove(), osl::eval::ppair::PiecePairEval< PiecePairWithStand< Table >, Table >::diffWithMove(), osl::eval::ml::BishopRookFork::evalOne(), osl::eval::ml::PiecePair::evalWithUpdate(), osl::eval::ml::PiecePair::evalWithUpdateCompiled(), osl::eval::ml::BishopRookFork::findDropInLine(), osl::rating::AttackKing8Group::findMatch(), flipHorizontal(), osl::move_generator::promote::MayPromoteDir< P, T, noCapture, Dir >::generateIfValid(), osl::move_generator::promote::AllPromoteDir< P, T, noCapture, Dir >::generateIfValid(), osl::ntesuki::NtesukiRecord::generateMoves(), osl::move_generator::addeffect8::generateShortDrop(), osl::search::BigramKillerMove::getMove(), osl::state::NumEffectState::inCheck(), osl::eval::ml::PiecePair::index(), osl::rating::CountOpen::index(), osl::state::SimpleState::isAlmostValidMove(), osl::state::NumEffectState::isAlmostValidMove(), osl::Move::isDrop(), isEdge(), osl::move_classifier::TrapRook< P >::isMember(), osl::move_classifier::SafeMove< P >::isMember(), osl::move_classifier::PawnDropCheckmate< P >::isMember(), osl::move_classifier::Check< P >::isMember(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), osl::Piece::isOnBoard(), osl::move_classifier::isSafeMove(), isValid(), osl::eval::ppair::PiecePairRawTable::loadFromBinaryFile(), osl::state::NumEffectState::makePinOpen(), osl::rating::AttackKing8::match(), osl::rating::RookDefense::match(), osl::eval::ml::SilverFork::matchGold(), osl::eval::ml::SilverFork::matchRook(), osl::record::opening::OMove::OMove(), osl::operator<<(), osl::eval::ml::PiecePair::pieceValueDouble(), osl::record::OPiece::position2Bits(), osl::state::NumEffectState::recalcPinOpen(), rotate180Safe(), run(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::record::psn::show(), osl::record::ki2::show(), osl::record::csa::show(), osl::record::psn::showXP(), osl::record::kakinoki::strToMove(), と osl::eval::ml::PiecePair::valueCompiled().
bool osl::Position::isU | ( | Position | pos | ) | const [inline] |
bool osl::Position::isUD | ( | Position | pos | ) | const [inline] |
bool osl::Position::isULRD | ( | Position | pos | ) | const [inline] |
2つのPosition(onBoardであることが前提)が, xが等しいかyが等しい
position.h の 210 行で定義されています。
参照先 isOnBoard(), と uintValue().
参照元 osl::move_generator::detail::generateRookLongMove(), と osl::move_generator::detail::generateRookLongMoveNotKing().
bool osl::Position::isValid | ( | ) | const |
position.cc の 15 行で定義されています。
参照先 isOnBoard(), と isPieceStand().
参照元 osl::hash::HashGenTable::addHashKey(), osl::Move::isValid(), osl::Move::Move(), と osl::hash::HashGenTable::subHashKey().
static const Position osl::Position::makeDirect | ( | int | value | ) | [inline, static] |
position.h の 47 行で定義されています。
参照先 Position().
参照元 osl::rating::PatternGroup::findMatch(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::move_generator::detail::generateNotKing(), osl::move_generator::detail::generateRookLongMoveNotKing(), osl::mobility::MobilityContent::get(), osl::state::NumEffectState::kingMobilityAbs(), operator-(), osl::search::operator<<(), osl::container::Position8::operator[](), osl::search::OnBoardElement::pos(), positionForBlack(), osl::state::NumEffectState::recalcPinOpen(), と rotate180EdgeOK().
static const Position osl::Position::makeNoCheck | ( | int | x, | |
int | y | |||
) | [inline, static] |
assertなしに作る
position.h の 65 行で定義されています。
参照先 osl::Offset::BOARD_HEIGHT, と Position().
参照元 osl::move_generator::detail::generateBishopLongMove(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::move_generator::detail::generateRookLongMove(), と osl::move_generator::detail::generateRookLongMoveNotKing().
static const Position osl::Position::nth | ( | unsigned int | i | ) | [inline, static] |
static const Position osl::Position::onBoardMax | ( | ) | [inline, static] |
static const Position osl::Position::onBoardMin | ( | ) | [inline, static] |
position.h の 158 行で定義されています。
参照先 Position().
参照元 isOnBoardRegion(), と osl::search::MoveMarker::toIndex().
position.h の 251 行で定義されています。
参照先 result.
Position& osl::Position::operator++ | ( | ) | [inline] |
position.h の 168 行で定義されています。
参照先 position.
position.h の 243 行で定義されています。
参照先 osl::Offset::intValue(), と position.
position.h の 259 行で定義されています。
参照先 makeDirect(), と position.
position.h の 255 行で定義されています。
参照先 result.
position.h の 247 行で定義されています。
参照先 osl::Offset::intValue(), と position.
position.h の 128 行で定義されています。
参照先 osl::BLACK.
const Position osl::Position::positionForBlack | ( | ) | const [inline] |
const Position osl::Position::positionForBlack | ( | Int2Type< WHITE > | ) | const [inline] |
position.h の 115 行で定義されています。
参照先 isOnBoard(), makeDirect(), Position(), と uintValue().
const Position osl::Position::positionForBlack | ( | Int2Type< BLACK > | ) | const [inline] |
position.h の 109 行で定義されています。
参照先 isOnBoard().
参照元 osl::eval::ml::PiecePairKing::add(), osl::eval::ml::PiecePairKing::addSub(), osl::search::QuiescenceGenerator< P >::attackKing8(), osl::move_classifier::canAttackInThreeMoves(), osl::eval::ml::PiecePairKing::evalOne(), osl::eval::ml::PiecePairKing::evalWithUpdateBang(), osl::move_generator::addeffect8::generateShortDrop(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::progress::Effect5x3WithBonus::makeProgressAreaBonus(), と osl::eval::ml::PiecePairKing::sub().
const osl::Position osl::Position::positionForBlackSlow | ( | Player | player | ) | const |
position.cc の 21 行で定義されています。
参照先 osl::BLACK, Position(), reverseX(), reverseY(), x(), と y().
static int osl::Position::reverseX | ( | int | x | ) | [inline, static] |
position.h の 173 行で定義されています。
static int osl::Position::reverseY | ( | int | y | ) | [inline, static] |
const Position osl::Position::rotate180 | ( | ) | const [inline] |
position.h の 135 行で定義されています。
参照元 adjustDual(), osl::eval::ml::BishopEffectBase::evalOne(), osl::eval::ml::RookEffectBase::evalOne(), osl::eval::ml::PiecePairKing::indexKing(), osl::eval::ml::PiecePairKing::indexPiece(), osl::eval::ml::RookMobilityAll::indexXKingX(), main(), osl::progress::ml::NewProgress::progressOne(), osl::eval::ppair::PiecePairPieceTable::setUp(), osl::progress::Effect5x3Table::setupAttackEffect(), osl::progress::Effect5x3Table::setupDefenseEffect(), osl::eval::endgame::DefenseKing::Table::Table(), と osl::eval::endgame::AttackKing::Table::Table().
const Position osl::Position::rotate180EdgeOK | ( | ) | const [inline] |
position.h の 139 行で定義されています。
参照先 makeDirect(), Position(), と uintValue().
参照元 osl::eval::ml::BishopEffectBase::evalOne(), と osl::eval::ml::RookEffectBase::evalOne().
const Position osl::Position::rotate180Safe | ( | ) | const [inline] |
static const Position osl::Position::STAND | ( | ) | [inline, static] |
position.h の 57 行で定義されています。
参照先 PIECE_STAND, と Position().
参照元 osl::record::OPiece::bits2Position(), osl::move_generator::drop::checkSilver(), osl::effect::NumSimpleEffectTable::doEffectLong(), osl::apply_move::ApplyPass::doUndoPass(), osl::Piece::EDGE(), osl::Piece::EMPTY(), osl::search::QuiescenceGenerator< P >::escapeKingInTakeBack(), osl::eval::endgame::AttackDefense::expect(), osl::rating::PatternBlock::find(), osl::effect_util::Neighboring8Direct::Table::findNearest(), osl::eval::ppair::PiecePairIndex::forEachRelation(), osl::record::opening::OMove::getFrom(), osl::record::opening::OMove::getTo(), osl::hash::HashGenTable::HashGenTable(), osl::PositionCompressor::melt(), osl::Move::Move(), osl::hash::HashKey::newMakeMove(), osl::hash::HashKey::newUnmakeMove(), osl::record::oposition_sort::operator()(), osl::record::opiece_sort::operator()(), osl::apply_move::ApplyDoUndoDropMove< P, state::SimpleState >::prologue(), osl::progress::PtypeProgress::PtypeProgress(), osl::progress::PtypeProgressTable::PtypeProgressTable(), osl::record::csa::strToPos(), osl::eval::endgame::DefenseKing::Table::Table(), osl::Centering5x3::Table::Table(), osl::Centering3x3::Table::Table(), osl::eval::endgame::AttackKing::Table::Table(), osl::progress::PtypeProgress::update(), と osl::eval::endgame::AttackDefense::update().
unsigned int osl::Position::uintValue | ( | ) | const [inline] |
position.h の 48 行で定義されています。
参照先 position.
参照元 osl::search::HistoryTable::add(), canPromote(), osl::search::HistoryTable::clear(), osl::move_generator::detail::generateBishopLongMove(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::move_generator::detail::generateDirNotKing(), osl::move_generator::detail::generateRookLongMove(), osl::move_generator::detail::generateRookLongMoveNotKing(), osl::BoardTable::getShort8(), osl::BoardTable::getShort8OffsetUnsafe(), osl::BoardTable::getShort8Unsafe(), osl::Move::init(), osl::BoardTable::isBetween(), isLR(), osl::container::Position8::isMember(), isU(), isUD(), isULRD(), osl::state::NumEffectState::makePinOpenDir(), osl::search::OnBoardElement::makePosPtypeO(), osl::Move::newAddFrom(), osl::Move::newAddTo(), osl::Move::newFrom(), osl::stl::hash< Position >::operator()(), osl::operator<(), osl::operator==(), osl::operator>(), osl::rating::PatternGroup::PatternGroup(), positionForBlack(), osl::container::Position8::push_back(), osl::state::NumEffectState::recalcPinOpen(), rotate180EdgeOK(), osl::Piece::setPosition(), osl::search::HistoryTable::value(), yEq(), yGe(), と yLe().
int osl::Position::x | ( | ) | const [inline] |
将棋としてのX座標を返す.
Positionの内部表現に依存しない.
position.h の 72 行で定義されています。
参照先 position.
参照元 osl::eval::ml::PiecePair::adjust12(), osl::Centering5x3::adjustCenterNaive(), osl::Centering3x3::adjustCenterNaive(), osl::search::QuiescenceGenerator< P >::attackGoldWithPawn(), osl::search::QuiescenceGenerator< P >::attackKing8(), osl::search::QuiescenceGenerator< P >::attackKnightWithPawn(), osl::search::QuiescenceGenerator< P >::attackSilverWithPawn(), osl::rating::BadLance::basicMatch(), osl::container::BoardMaskTable5x3Center::BoardMaskTable5x3Center(), osl::search::QuiescenceGenerator< P >::breakThreatmate(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateEnterKingBonus(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateRookRankBonus(), osl::container::BitXmask::clear(), osl::record::KisenUtils::convertPosition(), osl::eval::ml::NumPiecesBetweenBishopAndKing::countBetween(), osl::eval::ml::King25Effect::countEffectAndPieces(), osl::eval::ml::King25EffectBoth::countEffectAndPiecesBoth(), osl::mobility::RookMobility::countHorizontalAll(), osl::effect::NumSimpleEffectTable::doEffectLong(), osl::checkmate::EdgeTable::EdgeTable(), osl::eval::ml::PtypeYPawnY::eval(), osl::eval::ml::KnightHead::eval(), osl::eval::ml::RookRookPiece::eval(), osl::eval::ml::BishopBishopPiece::eval(), osl::eval::ml::BishopHead::eval(), osl::eval::ml::RookPromoteDefense::eval(), osl::eval::ml::RookPawnY::eval(), osl::eval::ml::RookPawn< Opening >::eval(), osl::eval::ml::PinPtypeAll::evalOne(), osl::eval::ml::GoldFeatures::evalOne(), osl::eval::ml::SilverFeatures::evalOne(), osl::eval::ml::KnightFork::evalOne(), osl::eval::ml::PromotedMinorPieces::evalOne(), osl::eval::ml::RookEffectBase::evalOne(), osl::eval::ml::King25BothSide::evalOne(), osl::eval::ml::KingMobilitySum::evalOne(), osl::eval::ml::KingMobility::evalOne(), osl::eval::ml::King25EmptyAbs< Opening >::evalOne(), osl::eval::ml::King25EffectEachBoth::evalOne(), osl::eval::ml::King25EffectEach< Stage >::evalOne(), osl::eval::ml::AnagumaEmpty::evalOne(), osl::eval::ml::PawnDropBoth::evalWithUpdate(), osl::eval::ml::PawnPtypeOPtypeO::evalWithUpdate(), osl::eval::ml::King3Pieces::evalWithUpdate(), osl::eval::ml::PtypeYPawnY::evalWithUpdateBang(), osl::eval::ml::PiecePair::evalWithUpdateCompiled(), flipHorizontal(), osl::search::BreakThreatmate::generate(), osl::search::BreakThreatmate::generateAddEffect(), osl::move_generator::detail::generateBishopLongMove(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::search::BreakThreatmate::generateBreakDrop(), osl::move_generator::detail::generateDir(), osl::move_generator::detail::generateDirNotKing(), osl::move_generator::escape::generateDrop(), osl::ntesuki::NtesukiRecord::generateMoves(), osl::move_generator::detail::generateRookLongMove(), osl::move_generator::detail::generateRookLongMoveNotKing(), osl::move_generator::addeffect8::generateShortDrop(), osl::BoardTable::getShort8(), osl::effect_util::Neighboring8Effect::hasEffectNaive(), osl::effect_util::Neighboring8Direct::hasEffectNaive(), osl::effect_util::Neighboring25Direct::hasEffectNaive(), osl::eval::ml::Pin::index(), osl::eval::ml::PiecePair::index(), osl::progress::ml::NewProgress::index(), osl::eval::ml::GoldAndSilverNearKing::index(), osl::eval::ml::LanceEffectPieceKingRelative::index(), osl::eval::ml::PtypeX::index(), osl::eval::ml::PawnDropBoth::index(), osl::eval::ml::KingRookBishop::index(), osl::eval::ml::KingPieceRelativeNoSupport::index(), osl::eval::ml::KingPieceRelative::index(), osl::eval::ml::King25EmptyAbs< Opening >::index(), osl::eval::ml::King25EffectEach< Stage >::index(), osl::eval::ml::KingXBlocked3::index(), osl::eval::ml::KingXBothBlocked::index(), osl::eval::ml::AnagumaEmpty::index(), osl::eval::ml::KingXBlockedYBase::index(), osl::eval::ml::KingXBlockedBase::index(), osl::eval::ml::BishopEffectBase::index1(), osl::eval::ml::RookEffectBase::index1(), osl::eval::ml::BishopEffectBase::index2(), osl::eval::ml::RookEffectBase::index2(), osl::eval::ml::GoldAndSilverNearKing::indexCombination(), osl::eval::ml::NonPawnAttacked::indexK(), osl::eval::ml::PiecePairKing::indexKing(), osl::rating::BigramAttack::indexKing(), osl::rating::BigramAttack::indexOfMove(), osl::progress::ml::NewProgress::indexPerEffect(), osl::progress::ml::NewProgress::indexPerEffectX(), osl::progress::ml::NewProgress::indexPerEffectY(), osl::progress::ml::NewProgress::indexRelative(), osl::eval::ml::GoldFeatures::indexSideX(), osl::eval::ml::PiecePairKing::indexWhite(), osl::progress::ml::NewProgress::indexX(), osl::eval::ml::RookMobilityAll::indexX(), osl::eval::ml::PawnDropBoth::indexX(), osl::eval::ml::King25Mobility::indexX(), osl::eval::ml::King25BothSide::indexX(), osl::eval::ml::King3Pieces::indexX(), osl::eval::ml::RookMobilityAll::indexXKingX(), osl::progress::ml::NewProgress::indexY(), osl::eval::ml::PawnDropBoth::indexY(), osl::eval::ml::RookPawnY::indexY(), osl::eval::ml::KingXBlocked3::indexY(), osl::eval::ml::KingXBothBlocked::indexY(), osl::state::SimpleState::isAlmostValidMove(), osl::state::NumEffectState::isAlmostValidMove(), osl::eval::ml::BishopRookFork::isBishopForkPosition(), osl::eval::ml::KingXBlockedBase::isBlocked(), isEdge(), osl::search::FirstMoveThreatmate::isMember(), isOnBoardSlow(), osl::eval::ml::BishopRookFork::isRookForkPosition(), osl::rating::Threatmate::knight2Step(), main(), osl::rating::RelativeKingX::makeOldX(), osl::progress::Effect5x3d::makeProgress(), osl::progress::Effect5x3::makeProgressArea(), osl::progress::Effect5x3WithBonus::makeProgressAreaBonus(), osl::rating::PositionX::makeX(), osl::rating::RelativeKingX::makeX(), osl::rating::PawnAttack::match(), osl::rating::RookDefense::match(), osl::eval::ml::KingMobility::mobilityDir(), moveFromX(), osl::Offset32Base< Width, Width2 >::Offset32Base(), osl::record::opening::OMove::OMove(), osl::eval::ml::OpenMidEndingEval::OpenMidEndingEval(), osl::record::oposition_sort::operator()(), RemoveMoveFromXEqual::operator()(), RemoveMoveFromXLTE::operator()(), RemoveMoveFromXUnder::operator()(), RemoveMoveFromXGTE::operator()(), RemoveMoveFromXOver::operator()(), SortMoveFromXDesc::operator()(), SortMoveFromX::operator()(), osl::record::opiece_sort::operator()(), osl::operator<<(), osl::eval::ml::PinPtypeAll::pawnAttack(), osl::record::OPiece::position2Bits(), positionForBlackSlow(), osl::effect::BoardBitMask::positionToOffset(), osl::threatmate::RichPredictor::predict(), osl::progress::ml::NewProgress::progressOne(), osl::search::QuiescenceGenerator< P >::promote(), run(), osl::record::KanjiMove::selectCandidates(), osl::progress::ml::NewProgress::setUp(), osl::progress::Effect5x3Table::setupAttackEffect(), osl::progress::Effect5x3Table::setupDefenseEffect(), show(), osl::record::psn::show(), osl::record::myshogi::show(), osl::record::ki2::show(), osl::record::csa::show(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::eval::ml::PiecePair::sum12(), osl::progress::ml::NewProgress::updateAttack5x5PiecesAndState(), osl::eval::ml::OpenMidEndingEval::updateGoldSilverNearKing(), osl::eval::ml::OpenMidEndingEval::updateSub(), と osl::eval::ml::PiecePair::valueCompiled().
int osl::Position::y | ( | ) | const [inline] |
将棋としてのY座標を返す.
Positionの内部表現に依存しない.
position.h の 76 行で定義されています。
参照先 position.
参照元 osl::eval::ml::PiecePairKing::add(), osl::eval::ml::PiecePairKing::addSub(), osl::eval::ml::PiecePair::adjust12(), osl::Centering5x3::adjustCenterNaive(), osl::Centering3x3::adjustCenterNaive(), osl::search::QuiescenceGenerator< P >::attackKing8(), osl::move_generator::detail::blockingU(), osl::container::BoardMaskTable5x3Center::BoardMaskTable5x3Center(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateEnterKingBonus(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateGoldPenalty(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateMiddleKingBonus(), osl::eval::ProgressEvalGeneral< OpeningEval >::calculateSilverPenalty(), osl::PtypePlayerTraits< T, P >::canDropTo(), osl::PtypeTable::canDropTo(), osl::search::ShouldPromoteCut::canIgnore(), osl::eval::ml::GoldFeatures::canRetreat(), osl::eval::ml::SilverFeatures::canRetreat(), osl::record::KisenUtils::convertPosition(), osl::mobility::LanceMobility::countAll(), osl::mobility::BishopMobility::countAll(), osl::mobility::BishopMobility::countAllDir(), osl::eval::ml::NumPiecesBetweenBishopAndKing::countBetween(), osl::eval::ml::King25Effect::countEffectAndPieces(), osl::eval::ml::King25EffectBoth::countEffectAndPiecesBoth(), osl::mobility::RookMobility::countVerticalAll(), osl::effect::NumSimpleEffectTable::doEffectLong(), osl::checkmate::EdgeTable::EdgeTable(), osl::eval::ml::KnightFork::eval(), osl::eval::ml::PtypeYPawnY::eval(), osl::eval::ml::KnightHead::eval(), osl::eval::ml::PawnPtypeOPtypeO::eval(), osl::eval::ml::RookRookPiece::eval(), osl::eval::ml::BishopBishopPiece::eval(), osl::eval::ml::BishopHead::eval(), osl::eval::ml::RookPromoteDefense::eval(), osl::eval::ml::PinPtypeAll::evalOne(), osl::eval::ml::GoldFeatures::evalOne(), osl::eval::ml::SilverFeatures::evalOne(), osl::eval::ml::KnightFork::evalOne(), osl::eval::ml::RookEffectBase::evalOne(), osl::eval::ml::King25BothSide::evalOne(), osl::eval::ml::KingMobilitySum::evalOne(), osl::eval::ml::KingMobility::evalOne(), osl::eval::ml::King25EmptyAbs< Opening >::evalOne(), osl::eval::ml::King25EffectEachBoth::evalOne(), osl::eval::ml::King25EffectEach< Stage >::evalOne(), osl::eval::ml::AnagumaEmpty::evalOne(), osl::eval::ml::PawnPtypeOPtypeO::evalWithUpdate(), osl::eval::ml::King3Pieces::evalWithUpdate(), osl::eval::ml::PtypeYY::evalWithUpdate(), osl::eval::ml::PiecePairKing::evalWithUpdateBang(), osl::eval::ml::PtypeYPawnY::evalWithUpdateBang(), osl::eval::ml::PiecePair::evalWithUpdateCompiled(), flipHorizontal(), osl::move_generator::detail::generateBishopLongMove(), osl::move_generator::detail::generateBishopLongMoveNotKing(), osl::move_generator::piece_on_board::generateLance(), osl::ntesuki::NtesukiRecord::generateMoves(), osl::move_generator::detail::generateOpenOrCapture(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtypeUnsafe(), osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePieceUnsafe(), osl::move_generator::detail::generateRookLongMove(), osl::move_generator::detail::generateRookLongMoveNotKing(), osl::BoardTable::getShort8(), osl::effect_util::Neighboring8Effect::hasEffectNaive(), osl::effect_util::Neighboring8Direct::hasEffectNaive(), osl::effect_util::Neighboring25Direct::hasEffectNaive(), osl::Move::ignoreUnpromote(), osl::eval::ml::Pin::index(), osl::eval::ml::PieceStandY::index(), osl::eval::ml::PiecePair::index(), osl::progress::ml::NewProgress::index(), osl::eval::ml::GoldAndSilverNearKing::index(), osl::eval::ml::LanceEffectPieceKingRelative::index(), osl::eval::ml::PtypeY::index(), osl::eval::ml::KnightAdvance::index(), osl::eval::ml::PawnAdvanceUtil::index(), osl::eval::ml::RookRook::index(), osl::eval::ml::KingRookBishop::index(), osl::eval::ml::RookPawnY::index(), osl::eval::ml::MajorY< true, ROOK >::index(), osl::eval::ml::PtypeYY::index(), osl::eval::ml::KingPieceRelativeNoSupport::index(), osl::eval::ml::KingPieceRelative::index(), osl::eval::ml::King25EmptyAbs< Opening >::index(), osl::eval::ml::King25EffectEach< Stage >::index(), osl::eval::ml::AnagumaEmpty::index(), osl::eval::ml::KingXBlockedYBase::index(), osl::eval::ml::BishopEffectBase::index1(), osl::eval::ml::RookEffectBase::index1(), osl::eval::ml::BishopEffectBase::index2(), osl::eval::ml::RookEffectBase::index2(), osl::eval::ml::GoldAndSilverNearKing::indexCombination(), osl::eval::ml::NonPawnAttacked::indexK(), osl::eval::ml::PiecePairKing::indexKing(), osl::rating::BigramAttack::indexKing(), osl::rating::BigramAttack::indexOfMove(), osl::progress::ml::NewProgress::indexPerEffect(), osl::progress::ml::NewProgress::indexPerEffectX(), osl::progress::ml::NewProgress::indexPerEffectY(), osl::eval::ml::PiecePairKing::indexPiece(), osl::progress::ml::NewProgress::indexRelative(), osl::eval::ml::GoldFeatures::indexRetreat(), osl::eval::ml::SilverFeatures::indexRetreat(), osl::eval::ml::GoldFeatures::indexSideY(), osl::eval::ml::PiecePairKing::indexWhite(), osl::progress::ml::NewProgress::indexX(), osl::progress::ml::NewProgress::indexY(), osl::eval::ml::RookMobilityAll::indexY(), osl::eval::ml::PromotedMinorPieces::indexY(), osl::eval::ml::PawnDropBoth::indexY(), osl::eval::ml::RookPawnY::indexY(), osl::eval::ml::King25Mobility::indexY(), osl::eval::ml::King25BothSide::indexY(), osl::eval::ml::King3Pieces::indexY(), osl::eval::ml::KingXBlocked3::indexY(), osl::eval::ml::KingXBothBlocked::indexY(), osl::eval::ml::King8Effect::indexY(), osl::eval::ml::BishopRookFork::isBishopForkPosition(), osl::eval::ml::KingXBlockedBase::isBlocked(), isEdge(), osl::search::FirstMoveThreatmate::isMember(), isOnBoardSlow(), osl::eval::ml::BishopRookFork::isRookForkPosition(), osl::rating::Threatmate::knight2Step(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), main(), osl::rating::RelativeKingY::makeOldY(), osl::progress::Effect5x3d::makeProgress(), osl::progress::Effect5x3::makeProgressArea(), osl::progress::Effect5x3WithBonus::makeProgressAreaBonus(), osl::rating::PositionY::makeY(), osl::rating::RelativeKingY::makeY(), osl::rating::RookDefense::match(), osl::PtypePlayerTraits< T, P >::mayPromote(), osl::eval::ml::KingMobility::mobilityDir(), moveFromY(), osl::Offset32Base< Width, Width2 >::Offset32Base(), osl::record::opening::OMove::OMove(), osl::eval::ml::OpenMidEndingEval::OpenMidEndingEval(), osl::record::oposition_sort::operator()(), RemoveMoveFromYEqual::operator()(), RemoveMoveFromYLTE::operator()(), RemoveMoveFromYUnder::operator()(), RemoveMoveFromYGTE::operator()(), RemoveMoveFromYOver::operator()(), SortMoveFromYDesc::operator()(), SortMoveFromY::operator()(), osl::record::opiece_sort::operator()(), osl::operator<<(), osl::record::OPiece::position2Bits(), positionForBlackSlow(), osl::effect::BoardBitMask::positionToOffset(), osl::threatmate::RichPredictor::predict(), osl::progress::ml::NewProgress::progressOne(), osl::search::QuiescenceGenerator< P >::promote(), run(), osl::record::KanjiMove::selectCandidates(), osl::progress::ml::NewProgress::setUp(), osl::progress::Effect5x3Table::setupAttackEffect(), osl::progress::Effect5x3Table::setupDefenseEffect(), show(), osl::record::psn::show(), osl::record::myshogi::show(), osl::record::ki2::show(), osl::record::csa::show(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::eval::ml::PiecePairKing::sub(), osl::eval::ml::PiecePair::sum12(), osl::progress::ml::NewProgress::updateAttack5x5PiecesAndState(), osl::eval::ml::OpenMidEndingEval::updateGoldSilverNearKing(), osl::eval::ml::OpenMidEndingEval::updateSub(), と osl::eval::ml::PiecePair::valueCompiled().
int osl::Position::y1 | ( | ) | const [inline] |
bool osl::Position::yEq | ( | ) | [inline] |
position.h の 263 行で定義されています。
参照先 uintValue().
参照元 osl::PtypePlayerTraits< T, P >::checkPromote(), と osl::PtypePlayerTraits< T, P >::mustPromote().
bool osl::Position::yGe | ( | typename boost::enable_if_c< Y==7 >::type * | = 0 |
) | [inline] |
position.h の 279 行で定義されています。
参照先 uintValue().
bool osl::Position::yGe | ( | typename boost::enable_if_c< Y!=7 >::type * | = 0 |
) | [inline] |
bool osl::Position::yLe | ( | typename boost::enable_if_c< Y==2 >::type * | = 0 |
) | [inline] |
position.h の 271 行で定義されています。
参照先 uintValue().
bool osl::Position::yLe | ( | typename boost::enable_if_c< Y!=2 >::type * | = 0 |
) | [inline] |
unsigned int osl::Position::position [private] |
position.h の 42 行で定義されています。
参照元 osl::search::QuiescenceGenerator< P >::escapeByMoveOnly(), osl::search::BreakThreatmate::findBlockLong(), index(), indexForOffset32(), isEdge(), isOnBoard(), isPieceStand(), operator++(), operator+=(), operator-(), operator-=(), Position(), osl::checkmate::detail::slowCheckDrop(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), uintValue(), x(), y(), と y1().