敵玉の8近傍の状態を表す. [詳細]
#include <king8Info.h>

Public メソッド | |
| King8Info (uint64_t v) | |
| unsigned int | dropCandidate () const |
| 0-7 bit 目を返す | |
| unsigned int | liberty () const |
| 8-15 bit 目を 0-7bitにshiftして返す | |
| unsigned int | libertyDropMask () const |
| 0-15bit | |
| unsigned int | libertyCandidate () const |
| 16-23 bit 目を 0-7bitにshiftして返す | |
| unsigned int | moveCandidate2 () const |
| 24-31 bit 目を 0-7bitにshiftして返す | |
| unsigned int | spaces () const |
| unsigned int | moves () const |
| unsigned int | libertyCount () const |
| libertyの数 | |
| template<Player P, Direction Dir> | |
| unsigned int | moveCandidateDir (NumEffectState const &state, Position 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 |
Static Public メソッド | |
| template<Player P> | |
| static const King8Info | make (NumEffectState const &state, Position king, PieceMask pinned) |
| template<Player P> | |
| static const King8Info | make (NumEffectState const &state, Position king) |
| static const King8Info | make (Player attack, NumEffectState const &state) |
| alt(attack) のking について計算 | |
| static const King8Info | makeWithPin (Player attack, NumEffectState const &state, const PieceMask &pinned) |
| alt(attack) のking について計算. | |
Public 変数 | |
| uint64_t | value |
Static Private メソッド | |
| template<Player P, Direction Dir> | |
| static uint64_t | hasEffectMask (NumEffectState const &state, Position target, PieceMask pinned, PieceMask on_board_defense) |
| alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する. | |
敵玉の8近傍の状態を表す.
王手がかかっている場合も含むことにする. Dirは相手の玉に対してDir方向で王手をかける位置 0-7 : 敵玉以外の利きがなく,自分の利きがある空白 (駒を打つ候補となりうる点) 8-15 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす) 16-23 : 空白か味方の駒(利き次第では移動可能になる) 24-31 : 敵玉以外の利きがなく,自分の利きがある空白,敵駒 (OLD 24-31 : 敵玉以外の利きがなく,自分の利きが2つ以上ある空白,敵駒 (駒を動かす候補となりうる点) ) 32-39 : 空白(駒打ち王手の候補) 40-47 : 味方の利き(kingの利きも含んでいる)がある空白,敵駒 48-51 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす)な数
king8Info.h の 30 行で定義されています。
| osl::checkmate::King8Info::King8Info | ( | uint64_t | v | ) | [inline, explicit] |
king8Info.h の 33 行で定義されています。
参照元 make().
| unsigned int osl::checkmate::King8Info::countMoveCandidate | ( | Player | player, | |
| NumEffectState const & | state | |||
| ) | const [inline] |
king8Info.h の 108 行で定義されています。
参照先 osl::BLACK.
| unsigned int osl::checkmate::King8Info::countMoveCandidate | ( | NumEffectState const & | state | ) | const [inline] |
king8Info.h の 95 行で定義されています。
参照元 osl::checkmate::ProofNumberTable::disproofAfterAllCheck().
| unsigned int osl::checkmate::King8Info::dropCandidate | ( | ) | const [inline] |
| uint64_t osl::checkmate::King8Info::hasEffectMask | ( | NumEffectState const & | state, | |
| Position | target, | |||
| PieceMask | pinned, | |||
| PieceMask | on_board_defense | |||
| ) | [inline, static, private] |
alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する.
| P(template) | - 攻撃側のplayer | |
| Dir(template) | - 敵玉に迫る方向(shortの8方向) | |
| state | - 初期状態 | |
| target | - alt(P)の玉があるpotision |
king8Info.cc の 64 行で定義されています。
参照先 osl::Piece::canMoveOn(), osl::Piece::isEdge(), osl::Piece::isEmpty(), と osl::Piece::isOnBoardByOwner().
| bool osl::checkmate::King8Info::hasMoveCandidate | ( | NumEffectState const & | state | ) | const [inline] |
king8Info.h の 128 行で定義されています。
| unsigned int osl::checkmate::King8Info::liberty | ( | ) | const [inline] |
8-15 bit 目を 0-7bitにshiftして返す
king8Info.h の 54 行で定義されています。
参照先 value.
参照元 osl::checkmate::ProofNumberTable::countLiberty(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::checkmate::ProofNumberTable::countLibertyShortNotKnight(), osl::checkmate::CheckmateIfCapture::effectiveAttackCandidate0(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::checkmate::operator<<(), と osl::checkmate::ImmediateCheckmateTable::ptypeDropMask().
| unsigned int osl::checkmate::King8Info::libertyCandidate | ( | ) | const [inline] |
| unsigned int osl::checkmate::King8Info::libertyCount | ( | ) | const [inline] |
libertyの数
king8Info.h の 82 行で定義されています。
参照先 value.
参照元 osl::checkmate::PureLibertyEstimator::attackH(), osl::checkmate::ProofNumberTable::libertyAfterAllDrop(), と main().
| unsigned int osl::checkmate::King8Info::libertyDropMask | ( | ) | const [inline] |
0-15bit
king8Info.h の 59 行で定義されています。
参照先 value.
参照元 osl::checkmate::ImmediateCheckmateTable::dropPtypeMask(), と osl::checkmate::ProofNumberTable::libertyAfterAllDrop().
| const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | Player | attack, | |
| NumEffectState const & | state | |||
| ) | [static] |
| const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state, | |
| Position | king | |||
| ) | [inline, static] |
king8Info.cc の 140 行で定義されています。
参照先 osl::alt().
| const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state, | |
| Position | king, | |||
| PieceMask | pinned | |||
| ) | [inline, static] |
king8Info.cc の 108 行で定義されています。
参照先 osl::alt(), osl::Board_Table, osl::BoardTable::getShort8(), King8Info(), と osl::Piece::position().
| const osl::checkmate::King8Info osl::checkmate::King8Info::makeWithPin | ( | Player | attack, | |
| NumEffectState const & | state, | |||
| const PieceMask & | pinned | |||
| ) | [static] |
| unsigned int osl::checkmate::King8Info::moveCandidate2 | ( | ) | const [inline] |
24-31 bit 目を 0-7bitにshiftして返す
king8Info.h の 69 行で定義されています。
参照先 value.
参照元 osl::checkmate::CheckmateIfCapture::effectiveAttackCandidate0(), と osl::checkmate::operator<<().
| unsigned int osl::checkmate::King8Info::moveCandidateDir | ( | NumEffectState const & | state, | |
| Position | target | |||
| ) | const [inline] |
king8Info.h の 87 行で定義されています。
| unsigned int osl::checkmate::King8Info::moveCandidateMask | ( | NumEffectState const & | state | ) | const [inline] |
| unsigned int osl::checkmate::King8Info::moves | ( | ) | const [inline] |
| unsigned int osl::checkmate::King8Info::spaces | ( | ) | const [inline] |
king8Info.h の 73 行で定義されています。
参照先 value.
| uint64_t osl::checkmate::King8Info::value |
king8Info.h の 32 行で定義されています。
参照元 osl::checkmate::detail::blockingDiagonalAttack(), dropCandidate(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece(), osl::checkmate::detail::hasCheckmateMoveKnight(), liberty(), libertyCandidate(), libertyCount(), libertyDropMask(), moveCandidate2(), moveCandidateDir(), moves(), osl::checkmate::EdgeTable::resetEdgeFromLiberty(), osl::checkmate::detail::slowCheckDrop(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), と spaces().
1.6.3