構成 | Public メソッド | Private 変数

クラス osl::checkmate::ProofNumberTable

#include <proofNumberTable.h>

osl::checkmate::ProofNumberTableのコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

構成

struct  Liberty

Public メソッド

void init ()
const Liberty countLiberty (Ptype ptype, Direction d, unsigned int liberty_mask) const
 dir 方向からの王手をかけた時のlibertyの予想
const Liberty countLibertyShortNotKnight (Player player, Square to, Ptype ptype, Square king, King8Info info) const
 8近傍へのdropまたは取れない移動後のlibertyの予測値を返す.
const Liberty countLibertyLong (Player player, Square to, Ptype ptype, Square king, King8Info info) const
int countLiberty (const NumEffectState &state, int liberty_count, Move move, Square king, King8Info info) const
 move は王手である必要がある
int countLiberty (const NumEffectState &state, Move move) const
 テスト用
int libertyAfterAllDrop (const NumEffectState &state) const
 drop のみ
int libertyAfterAllDrop (const NumEffectState &state, Player attack, King8Info info) const
int libertyAfterAllMove (const NumEffectState &state) const
 移動 のみ
int libertyAfterAllMove (const NumEffectState &state, Player attack, King8Info info, Square king) const
int libertyAfterAllCheck (const NumEffectState &state) const
 全て
int disproofAfterAllCheck (const NumEffectState &, Player, King8Info) const
const ProofDisproof attackEstimation (const NumEffectState &state) const
 全て
const ProofDisproof attackEstimation (const NumEffectState &state, Player attack, King8Info info, Square king) const

Private 変数

CArray2d< CArray< Liberty,
DIRECTION_SIZE >, 0x100u, PTYPE_SIZE > 
liberties
 一つの王手 -> Liberty: long なdirection は1マスあけた王手を意味する
CArray2d< uint8_t, 0x10000u, 8 > drop_liberty
 全ての有効drop -> 最小liberty.
CArray2d< uint8_t, 0x100u, 0x100u > pmajor_liberty
 龍や馬で王手をかけられる時のliberty: [liberty][move_mask]
CArray2d< uint8_t, 0x100u, 0x100u > promote_liberty
 王が1,2段目にいる時の移動王手によるliberty: [liberty][move_mask].
CArray2d< uint8_t, 0x100u, 0x100u > other_move_liberty
 それ以外の移動liberty: [liberty][move_mask]

説明

proofNumberTable.h15 行で定義されています。


関数

const osl::checkmate::ProofDisproof osl::checkmate::ProofNumberTable::attackEstimation ( const NumEffectState state  )  const
const osl::checkmate::ProofDisproof osl::checkmate::ProofNumberTable::attackEstimation ( const NumEffectState state,
Player  attack,
King8Info  info,
Square  king 
) const
int osl::checkmate::ProofNumberTable::countLiberty ( const NumEffectState state,
int  liberty_count,
Move  move,
Square  king,
King8Info  info 
) const [inline]
int osl::checkmate::ProofNumberTable::countLiberty ( const NumEffectState state,
Move  move 
) const
const Liberty osl::checkmate::ProofNumberTable::countLiberty ( Ptype  ptype,
Direction  d,
unsigned int  liberty_mask 
) const [inline]

dir 方向からの王手をかけた時のlibertyの予想

proofNumberTable.h50 行で定義されています。

参照先 liberties, osl::UUL, と osl::UUR.

参照元 osl::checkmate::PureLibertyEstimator::attackH(), countLiberty(), countLibertyLong(), と countLibertyShortNotKnight().

const Liberty osl::checkmate::ProofNumberTable::countLibertyLong ( Player  player,
Square  to,
Ptype  ptype,
Square  king,
King8Info  info 
) const [inline]
const Liberty osl::checkmate::ProofNumberTable::countLibertyShortNotKnight ( Player  player,
Square  to,
Ptype  ptype,
Square  king,
King8Info  info 
) const [inline]

8近傍へのdropまたは取れない移動後のlibertyの予測値を返す.

玉は取り返せる時でも取り返さない値. 桂馬は表をひく必要がないので呼び出し側で処理する.

戻り値:
空王手の場合は 0 のことがある.

proofNumberTable.h62 行で定義されています。

参照先 osl::BLACK, osl::Board_Table, countLiberty(), osl::BoardTable::getShort8(), osl::Square::isNeighboring8(), osl::KNIGHT, osl::checkmate::King8Info::liberty(), と osl::WHITE.

参照元 countLiberty().

int osl::checkmate::ProofNumberTable::disproofAfterAllCheck ( const NumEffectState state,
Player  attack,
King8Info  info 
) const
void osl::checkmate::ProofNumberTable::init (  ) 
int osl::checkmate::ProofNumberTable::libertyAfterAllCheck ( const NumEffectState state  )  const

全て

proofNumberTable.cc362 行で定義されています。

参照先 attackEstimation(), と osl::checkmate::ProofDisproof::proof().

int osl::checkmate::ProofNumberTable::libertyAfterAllDrop ( const NumEffectState state,
Player  attack,
King8Info  info 
) const
int osl::checkmate::ProofNumberTable::libertyAfterAllDrop ( const NumEffectState state  )  const

drop のみ

proofNumberTable.cc251 行で定義されています。

参照先 osl::alt(), osl::NumEffectState::Iking8Info(), と osl::SimpleState::turn().

参照元 attackEstimation().

int osl::checkmate::ProofNumberTable::libertyAfterAllMove ( const NumEffectState state,
Player  attack,
King8Info  info,
Square  king 
) const
int osl::checkmate::ProofNumberTable::libertyAfterAllMove ( const NumEffectState state  )  const

変数

CArray2d<uint8_t,0x10000u,8> osl::checkmate::ProofNumberTable::drop_liberty [private]

全ての有効drop -> 最小liberty.

liberty 8bit + 有効drop 8bit + 最小値 -> ptype mask

proofNumberTable.h35 行で定義されています。

参照元 init(), と libertyAfterAllDrop().

CArray2d<CArray<Liberty,DIRECTION_SIZE>,0x100u,PTYPE_SIZE> osl::checkmate::ProofNumberTable::liberties [private]

一つの王手 -> Liberty: long なdirection は1マスあけた王手を意味する

proofNumberTable.h31 行で定義されています。

参照元 countLiberty(), と init().

CArray2d<uint8_t,0x100u,0x100u> osl::checkmate::ProofNumberTable::other_move_liberty [private]

それ以外の移動liberty: [liberty][move_mask]

proofNumberTable.h43 行で定義されています。

参照元 init(), と libertyAfterAllMove().

CArray2d<uint8_t,0x100u,0x100u> osl::checkmate::ProofNumberTable::pmajor_liberty [private]

龍や馬で王手をかけられる時のliberty: [liberty][move_mask]

proofNumberTable.h37 行で定義されています。

参照元 init(), と libertyAfterAllMove().

CArray2d<uint8_t,0x100u,0x100u> osl::checkmate::ProofNumberTable::promote_liberty [private]

王が1,2段目にいる時の移動王手によるliberty: [liberty][move_mask].

それ以外でUに金類が移動できる場合もこれで良いか.

proofNumberTable.h41 行で定義されています。

参照元 init(), と libertyAfterAllMove().


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