敵玉の8近傍の状態を表す. More...
#include <king8Info.h>
Public Member Functions | |
King8Info (uint64_t v) | |
uint64_t | uint64Value () const |
unsigned int | dropCandidate () const |
0-7 bit 目を返す More... | |
unsigned int | liberty () const |
8-15 bit 目を 0-7bitにshiftして返す More... | |
unsigned int | libertyDropMask () const |
0-15bit More... | |
unsigned int | libertyCandidate () const |
16-23 bit 目を 0-7bitにshiftして返す More... | |
unsigned int | moveCandidate2 () const |
24-31 bit 目を 0-7bitにshiftして返す More... | |
unsigned int | spaces () const |
unsigned int | moves () const |
unsigned int | libertyCount () const |
libertyの数 More... | |
template<Player P, Direction Dir> | |
unsigned int | moveCandidateDir (NumEffectState const &state, Square target) const |
template<Player P> | |
unsigned int | countMoveCandidate (NumEffectState const &state) const |
unsigned int | countMoveCandidate (Player player, NumEffectState const &state) const |
template<Player P> | |
unsigned int | moveCandidateMask (NumEffectState const &state) const |
template<Player P> | |
bool | hasMoveCandidate (NumEffectState const &state) const |
template<osl::Player P, osl::Direction Dir> | |
uint64_t | hasEffectMask (NumEffectState const &state, Square target, PieceMask pinned, PieceMask on_board_defense) |
template<osl::Player P> | |
const osl::checkmate::King8Info | make (NumEffectState const &state, Square target, PieceMask pinned) |
template<osl::Player P> | |
const osl::checkmate::King8Info | make (NumEffectState const &state, Square target) |
Static Public Member Functions | |
template<Player P> | |
static const King8Info | make (NumEffectState const &state, Square king, PieceMask pinned) |
template<Player P> | |
static const King8Info | make (NumEffectState const &state, Square king) |
static const King8Info | make (Player attack, NumEffectState const &state) |
alt(attack) のking について計算 More... | |
static const King8Info | makeWithPin (Player attack, NumEffectState const &state, const PieceMask &pinned) |
alt(attack) のking について計算. More... | |
Static Private Member Functions | |
template<Player P, Direction Dir> | |
static uint64_t | hasEffectMask (NumEffectState const &state, Square target, PieceMask pinned, PieceMask on_board_defense) |
alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する. More... | |
Private Attributes | |
uint64_t | value |
敵玉の8近傍の状態を表す.
王手がかかっている場合も含むことにする. Dirは相手の玉に対してDir方向で王手をかける位置 0-7 : 敵玉以外の利きがなく,自分の利きがある空白 (駒を打つ候補となりうる点) 8-15 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす) 16-23 : 空白か味方の駒(利き次第では移動可能になる) 24-31 : 敵玉以外の利きがなく,自分の利きがある空白,敵駒 (OLD 24-31 : 敵玉以外の利きがなく,自分の利きが2つ以上ある空白,敵駒 (駒を動かす候補となりうる点) ) 32-39 : 空白(駒打ち王手の候補) 40-47 : 味方の利き(kingの利きも含んでいる)がある空白,敵駒 48-51 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす)な数
Definition at line 30 of file king8Info.h.
|
inlineexplicit |
Definition at line 34 of file king8Info.h.
Referenced by make().
|
inline |
Definition at line 97 of file king8Info.h.
Referenced by osl::checkmate::ProofNumberTable::disproofAfterAllCheck().
|
inline |
Definition at line 110 of file king8Info.h.
References osl::BLACK.
|
inline |
0-7 bit 目を返す
Definition at line 51 of file king8Info.h.
References value.
Referenced by osl::checkmate::ProofNumberTable::disproofAfterAllCheck(), osl::search::BreakThreatmate::generate(), and osl::checkmate::operator<<().
uint64_t osl::checkmate::King8Info::hasEffectMask | ( | NumEffectState const & | state, |
Square | target, | ||
PieceMask | pinned, | ||
PieceMask | on_board_defense | ||
) |
Definition at line 68 of file king8Info.cc.
References osl::Piece::canMoveOn(), osl::Piece::isEdge(), osl::Piece::isEmpty(), osl::Piece::isOnBoardByOwner(), and target.
|
staticprivate |
alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する.
P(template) | - 攻撃側のplayer |
Dir(template) | - 敵玉に迫る方向(shortの8方向) |
state | - 初期状態 |
target | - alt(P)の玉があるpotision |
|
inline |
Definition at line 130 of file king8Info.h.
Referenced by osl::threatmate::TreePredictor::predict().
|
inline |
8-15 bit 目を 0-7bitにshiftして返す
Definition at line 56 of file king8Info.h.
References value.
Referenced by osl::move_probability::KingBlockade::blockAll(), osl::checkmate::ProofNumberTable::countLiberty(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::checkmate::ProofNumberTable::countLibertyShortNotKnight(), osl::eval::ml::King8EffectAll::eval(), osl::move_generator::piece_on_board::generateKing(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::move_probability::KingBlockade::match(), osl::checkmate::operator<<(), and osl::checkmate::ImmediateCheckmateTable::ptypeDropMask().
|
inline |
16-23 bit 目を 0-7bitにshiftして返す
Definition at line 66 of file king8Info.h.
References value.
Referenced by osl::checkmate::operator<<().
|
inline |
libertyの数
Definition at line 84 of file king8Info.h.
References value.
Referenced by osl::checkmate::PureLibertyEstimator::attackH(), osl::checkmate::ProofNumberTable::libertyAfterAllDrop(), main(), and osl::move_probability::KingBlockade::match().
|
inline |
0-15bit
Definition at line 61 of file king8Info.h.
References value.
Referenced by osl::checkmate::ImmediateCheckmateTable::dropPtypeMask(), osl::move_probability::StateInfo::findCheckmateDefender(), and osl::checkmate::ProofNumberTable::libertyAfterAllDrop().
|
static |
Referenced by osl::state::NumEffectState::isConsistent().
|
static |
|
static |
alt(attack) のking について計算
Definition at line 150 of file king8Info.cc.
References osl::alt(), and osl::BLACK.
const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state, |
Square | target, | ||
PieceMask | pinned | ||
) |
Definition at line 112 of file king8Info.cc.
References osl::alt(), osl::Board_Table, osl::BoardTable::getShort8(), King8Info(), osl::Piece::square(), and target.
const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state, |
Square | target | ||
) |
Definition at line 144 of file king8Info.cc.
References osl::alt(), and target.
|
static |
alt(attack) のking について計算.
pinが既に求まっている
Definition at line 160 of file king8Info.cc.
References osl::alt(), and osl::BLACK.
|
inline |
24-31 bit 目を 0-7bitにshiftして返す
Definition at line 71 of file king8Info.h.
References value.
Referenced by osl::checkmate::operator<<().
|
inline |
Definition at line 89 of file king8Info.h.
References osl::effect_util::AdditionalEffect::hasEffect(), and value.
|
inline |
|
inline |
Definition at line 79 of file king8Info.h.
References value.
Referenced by osl::checkmate::Dfpn::attack().
|
inline |
Definition at line 75 of file king8Info.h.
References value.
Referenced by osl::move_probability::StateInfo::findCheckmateDefender().
|
inline |
Definition at line 48 of file king8Info.h.
References value.
Referenced by osl::checkmate::detail::blockingDiagonalAttack(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece(), osl::checkmate::detail::hasCheckmateMoveKnight(), osl::state::NumEffectState::isConsistent(), osl::checkmate::EdgeTable::resetEdgeFromLiberty(), osl::checkmate::detail::slowCheckDrop(), and osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().
|
private |
Definition at line 32 of file king8Info.h.
Referenced by dropCandidate(), liberty(), libertyCandidate(), libertyCount(), libertyDropMask(), moveCandidate2(), moveCandidateDir(), moves(), spaces(), and uint64Value().