Public メソッド | Static Public メソッド | Static Private メソッド | Private 変数

クラス osl::checkmate::King8Info

敵玉の8近傍の状態を表す. [詳細]

#include <king8Info.h>

すべてのメンバ一覧

Public メソッド

 King8Info (uint64_t v)
uint64_t uint64Value () const
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, 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

Static Public メソッド

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 について計算
static const King8Info makeWithPin (Player attack, NumEffectState const &state, const PieceMask &pinned)
 alt(attack) のking について計算.

Static Private メソッド

template<Player P, Direction Dir>
static uint64_t hasEffectMask (NumEffectState const &state, Square target, PieceMask pinned, PieceMask on_board_defense)
 alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する.

Private 変数

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に移動可能(王手がかかっている場合は長い利きも延ばす)な数

king8Info.h28 行で定義されています。


コンストラクタとデストラクタ

osl::checkmate::King8Info::King8Info ( uint64_t  v  )  [inline, explicit]

king8Info.h32 行で定義されています。

参照元 make().


関数

template<Player P>
unsigned int osl::checkmate::King8Info::countMoveCandidate ( NumEffectState const &  state  )  const [inline]
unsigned int osl::checkmate::King8Info::countMoveCandidate ( Player  player,
NumEffectState const &  state 
) const [inline]

king8Info.h108 行で定義されています。

参照先 osl::BLACK.

unsigned int osl::checkmate::King8Info::dropCandidate (  )  const [inline]

0-7 bit 目を返す

king8Info.h49 行で定義されています。

参照先 value.

参照元 osl::checkmate::ProofNumberTable::disproofAfterAllCheck(), と osl::checkmate::operator<<().

template<osl::Player P, osl::Direction Dir>
uint64_t osl::checkmate::King8Info::hasEffectMask ( NumEffectState const &  state,
Square  target,
PieceMask  pinned,
PieceMask  on_board_defense 
) [static, private]

alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する.

引数:
P(template) - 攻撃側のplayer
Dir(template) - 敵玉に迫る方向(shortの8方向)
state - 初期状態
target - alt(P)の玉があるpotision

king8Info.cc67 行で定義されています。

参照先 osl::alt(), osl::Piece::canMoveOn(), osl::NumEffectState::hasEffectAt(), osl::Piece::isEdge(), osl::Piece::isEmpty(), osl::Piece::isOnBoardByOwner(), と osl::SimpleState::pieceAt().

template<Player P>
bool osl::checkmate::King8Info::hasMoveCandidate ( NumEffectState const &  state  )  const [inline]

king8Info.h128 行で定義されています。

参照先 osl::alt(), と osl::SimpleState::kingSquare().

参照元 osl::move_probability::StateInfo::clearOldCache().

unsigned int osl::checkmate::King8Info::liberty (  )  const [inline]
unsigned int osl::checkmate::King8Info::libertyCandidate (  )  const [inline]

16-23 bit 目を 0-7bitにshiftして返す

king8Info.h64 行で定義されています。

参照先 value.

参照元 osl::checkmate::operator<<().

unsigned int osl::checkmate::King8Info::libertyCount (  )  const [inline]
unsigned int osl::checkmate::King8Info::libertyDropMask (  )  const [inline]
const osl::checkmate::King8Info osl::checkmate::King8Info::make ( Player  attack,
NumEffectState const &  state 
) [static]

alt(attack) のking について計算

king8Info.cc149 行で定義されています。

参照先 osl::alt(), osl::BLACK, と osl::SimpleState::kingSquare().

template<osl::Player P>
const osl::checkmate::King8Info osl::checkmate::King8Info::make ( NumEffectState const &  state,
Square  king,
PieceMask  pinned 
) [static]
template<osl::Player P>
const osl::checkmate::King8Info osl::checkmate::King8Info::make ( NumEffectState const &  state,
Square  king 
) [static]

king8Info.cc143 行で定義されています。

参照先 osl::alt().

const osl::checkmate::King8Info osl::checkmate::King8Info::makeWithPin ( Player  attack,
NumEffectState const &  state,
const PieceMask pinned 
) [static]

alt(attack) のking について計算.

pinが既に求まっている

king8Info.cc159 行で定義されています。

参照先 osl::alt(), osl::BLACK, と osl::SimpleState::kingSquare().

unsigned int osl::checkmate::King8Info::moveCandidate2 (  )  const [inline]

24-31 bit 目を 0-7bitにshiftして返す

king8Info.h69 行で定義されています。

参照先 value.

参照元 osl::checkmate::operator<<().

template<Player P, Direction Dir>
unsigned int osl::checkmate::King8Info::moveCandidateDir ( NumEffectState const &  state,
Square  target 
) const [inline]
template<Player P>
unsigned int osl::checkmate::King8Info::moveCandidateMask ( NumEffectState const &  state  )  const [inline]
unsigned int osl::checkmate::King8Info::moves (  )  const [inline]

king8Info.h77 行で定義されています。

参照先 value.

参照元 osl::checkmate::Dfpn::attack().

unsigned int osl::checkmate::King8Info::spaces (  )  const [inline]

king8Info.h73 行で定義されています。

参照先 value.

参照元 osl::move_probability::StateInfo::findCheckmateDefender().

uint64_t osl::checkmate::King8Info::uint64Value (  )  const [inline]

変数


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義