構造体 osl::checkmate::CheckHashRecord

;ǥΡɤȤ˥ơ֥ݻǡ [詳細]

#include <checkHashRecord.h>

osl::checkmate::CheckHashRecordのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 CheckHashRecord ()
 CheckHashRecord (PieceStand black, PieceStand white)
 ~CheckHashRecord ()
void setProofDisproof (const ProofDisproof &pdp)
void setProofDisproof (unsigned int proof, unsigned int disproof)
const ProofDisproofproofDisproof () const
unsigned int proof () const
unsigned int disproof () const
void setProofByDominance (unsigned int disproof, const CheckHashRecord *final_by_dominance)
void setDisproofByDominance (unsigned int proof, const CheckHashRecord *final_by_dominance)
void setFinalByDominance (const CheckHashRecord *dominance)
const PieceStand stand (Player player) const
const CheckHashRecordfinalByDominance () const
void setProofPieces (PieceStand new_stand)
void setProofPiecesAttack (Player attacker)
 bestMove Ȥ˾
void setDisproofPieces (PieceStand new_stand)
void setDisproofPiecesDefense (Player defense)
 bestMove Ȥȿڶ
bool hasProofPieces () const
bool hasDisproofPieces () const
const PieceStand proofPieces () const
const PieceStand disproofPieces () const
bool isConsistent () const
bool hasBestMove () const
CheckMovegetBestMove ()
const CheckMovegetBestMove () const
bool needMoveGeneration () const
unsigned int add (unsigned int a, unsigned int b)
template<Player Attacker>
void propagateCheckmate (ProofDisproof pdp)
 ͤλ proofDisproof ꤷͥ۴ط̤
template<Player Attacker>
void propagateNoCheckmate (ProofDisproof pdp)
 Եͤλ proofDisproof ꤷͥ۴ط̤
void confirmParent (CheckHashRecord *parent)
 ƤȤǧ
unsigned int selectBestAttackMove (const PathEncoding &path, const TwinTable &table, unsigned int &currentBestProofNumber, unsigned int &currentSecondBestProofNumber, unsigned int &currentDisproofNumber, unsigned int &currentBestDisproofNumber, ProofDisproof &bestResultInSolved, CheckMove *&bestChild)
 ¦ moves ̤įᡤƼ(dis)proof number 򽸷פμ bestChild ¸.
unsigned int selectBestAttackMoveMain (const PathEncoding &path, const TwinTable &table, unsigned int &currentBestProofNumber, unsigned int &currentSecondBestProofNumber, unsigned int &currentDisproofNumber, unsigned int &currentBestDisproofNumber, ProofDisproof &bestResultInSolved, CheckMove *&bestChild)
unsigned int selectBestDefenseMove (const PathEncoding &path, const TwinTable &table, unsigned int &currentBestDisproofNumber, unsigned int &currentSecondBestDisproofNumber, unsigned int &currentProofNumber, unsigned int &currentBestProofNumber, ProofDisproof &bestResultInSolved, CheckMove *&bestChild)
 ɸ¦ moves ̤įᡤƼ(dis)proof number 򽸷פμ bestChild ¸.
void dump (std::ostream &os, int dumpDepth) const
void dump (int dumpDepth=1) const
void updateBestResultInSolvedAttack (const ProofDisproof &pdp)
void updateBestResultInSolvedDefense (const ProofDisproof &pdp)
void addToSolved (CheckMove &move, const ProofDisproof &pdp, bool isAttack)
void addToSolvedInAttack (CheckMove &move, const ProofDisproof &pdp)
void addToSolvedInDefense (CheckMove &move, const ProofDisproof &pdp)
void setLoopDetection (const PathEncoding &path, const CheckMove &move, const CheckHashRecord *loopTo)
template<Player Attacker>
void setLoopDetectionTryMerge (const PathEncoding &path, CheckMove &move, const CheckHashRecord *loopTo)
void setLoopDetection (const PathEncoding &path, const CheckHashRecord *loopTo)
template<Player Attacker>
void setLoopDetectionInAttack (const PathEncoding &path)
const TwinEntryfindLoop (const PathEncoding &path, const TwinTable &table) const
 Ƥtwin entry Ĵ٤ơloop뤫ɤȽꤹ.
const TwinEntryfindLoopInList (const PathEncoding &path) const
 twin list Ĵ٤ơloop뤫ɤȽꤹ.

Static Public メソッド

static const ProofDisproof initialProofDisproof ()
 proofDisproof ν.

Public 変数

ProofDisproof bestResultInSolved
 ֤*Ū*ʷ̤ȽؼǺǤԹ礬ɤ.
CheckMoveList moves
 õΥꥹ
CheckMovebestMove
 ͤξεͤޤ finalByDominance ξ硢̤ΥΡɤ (solved)moves ؤ礬
CheckHashRecordparent
 ƤΰġήθФ˻Ȥ
SameBoardListsameBoards
 Ʊ(𤬰㤦)Υꥹ
TwinList twins
 LoopDetection ط(ߥ졼)
signed short distance
 root κûѥεΥ
MoveFilter filter
 оݤȤؼμ
bool isConfluence
 Ȥǹήξ翿
bool useMaxInsteadOfSum
 ʤ sum max (loop/dag к)
bool isVisited
 õ˽񤭴
bool false_branch_candidate
 2005
bool false_branch

Private 型

enum  ProofPiecesType { UNSET = 0, PROOF, DISPROOF }

Private メソッド

template<Player Attacker>
void propagateCheckmateRecursive ()
template<Player Attacker>
void propagateNoCheckmateRecursive ()

Private 変数

ProofDisproof proof_disproof
const CheckHashRecordfinal_by_dominance
 ͥ۴طǵ/Եͤʬä˵Ͽ
PieceStand black_stand
 ߤζ̤λ
PieceStand white_stand
PieceStand proof_disproof_pieces
 ޤȿڶ: (Ե)ξΤߥåȤ
char proof_pieces_type
 proof (disproof) pieces 򥻥åȤɤ.


説明

;ǥΡɤȤ˥ơ֥ݻǡ

checkHashRecord.h53 行で定義されています。


列挙型

列挙型の値:
UNSET 
PROOF 
DISPROOF 

checkHashRecord.h98 行で定義されています。


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

osl::checkmate::CheckHashRecord::CheckHashRecord (  )  [inline]

checkHashRecord.h109 行で定義されています。

osl::checkmate::CheckHashRecord::CheckHashRecord ( PieceStand  black,
PieceStand  white 
) [inline]

checkHashRecord.h119 行で定義されています。

osl::checkmate::CheckHashRecord::~CheckHashRecord (  ) 


関数

static const ProofDisproof osl::checkmate::CheckHashRecord::initialProofDisproof (  )  [inline, static]

void osl::checkmate::CheckHashRecord::setProofDisproof ( const ProofDisproof pdp  )  [inline]

void osl::checkmate::CheckHashRecord::setProofDisproof ( unsigned int  proof,
unsigned int  disproof 
) [inline]

const ProofDisproof& osl::checkmate::CheckHashRecord::proofDisproof (  )  const [inline]

checkHashRecord.h146 行で定義されています。

参照先 proof_disproof.

参照元 osl::checkmate::OraclePool::addDisproofOracle(), addToSolved(), osl::checkmate::SameBoardList::allocate(), osl::checkmate::analyzer::ProofTreeTraverser::andNode(), osl::checkmate::analyzer::ProofTreeDepth::andNode(), osl::checkmate::analyzer::DisproofTreeTraverser::andNode(), osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleDisprover< Table >::attack(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::attack(), osl::checkmate::ChildAttackHelper< P, CheckmateSearcher >::ChildAttackHelper(), osl::checkmate::ChildDefenseHelper< P, CheckmateSearcher >::ChildDefenseHelper(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleDisprover< Table >::defense(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::defense(), osl::checkmate::analyzer::ProofTreeDepth::depth(), osl::checkmate::DefenseSimulation< P >::disproofNoPromote(), osl::checkmate::DisproofOracleAttack< P >::DisproofOracleAttack(), osl::checkmate::DisproofOracleDefense< P >::DisproofOracleDefense(), osl::checkmate::CheckmateRecorder::enter(), osl::checkmate::examineDisproofTree(), osl::checkmate::examineProofTree(), osl::checkmate::examineTreeGuess(), osl::checkmate::ProofOracleAttack< Attacker >::expandOracle(), osl::checkmate::DisproofOracleAttack< P >::expandOracle(), osl::focus(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::hasCheckmateMove(), osl::checkmate::DisproofOracleAttack< P >::invalidNextOracle(), isConsistent(), osl::brinkmate::BrinkmateState::isEffectiveDefense(), osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningState(), osl::checkmate::CheckmateRecorder::leave(), osl::checkmate::DisproofOracleAttack< P >::makeOracle(), osl::checkmate::analyzer::ProofTreeTraverser::orNode(), osl::checkmate::analyzer::ProofTreeDepth::orNode(), osl::checkmate::analyzer::DisproofTreeTraverser::orNode(), osl::checkmate::OracleDisprover< Table >::proofEscape(), osl::checkmate::OracleProver< Table >::proofLose(), osl::checkmate::OracleDisprover< Table >::proofNoCheckmate(), osl::checkmate::ProofOracleAttack< P >::ProofOracleAttack(), osl::checkmate::ProofOracleDefense< P >::ProofOracleDefense(), osl::checkmate::OracleProver< Table >::proofWin(), osl::checkmate::CheckTableUtil::registerImmediateCheckmateInDefense(), selectBestAttackMove(), setDisproofByDominance(), setLoopDetection(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::setUpDefenseNode(), osl::checkmate::analyzer::ShowAllTree::show(), osl::checkmate::analyzer::TreeStreamWriter::showMove(), osl::checkmate::analyzer::TreeStreamWriter::showRecord(), osl::brinkmate::BrinkmateState::testThreatmateState(), osl::brinkmate::BrinkmateState::testWinningState(), と testWinOrLose().

unsigned int osl::checkmate::CheckHashRecord::proof (  )  const [inline]

unsigned int osl::checkmate::CheckHashRecord::disproof (  )  const [inline]

void osl::checkmate::CheckHashRecord::setProofByDominance ( unsigned int  disproof,
const CheckHashRecord final_by_dominance 
) [inline]

void osl::checkmate::CheckHashRecord::setDisproofByDominance ( unsigned int  proof,
const CheckHashRecord final_by_dominance 
) [inline]

void osl::checkmate::CheckHashRecord::setFinalByDominance ( const CheckHashRecord dominance  )  [inline]

checkHashRecord.h180 行で定義されています。

参照先 check_assert, final_by_dominance, と proof_pieces_type.

参照元 setDisproofByDominance(), と setProofByDominance().

const PieceStand osl::checkmate::CheckHashRecord::stand ( Player  player  )  const [inline]

const CheckHashRecord* osl::checkmate::CheckHashRecord::finalByDominance (  )  const [inline]

void osl::checkmate::CheckHashRecord::setProofPieces ( PieceStand  new_stand  )  [inline]

void osl::checkmate::CheckHashRecord::setProofPiecesAttack ( Player  attacker  )  [inline]

void osl::checkmate::CheckHashRecord::setDisproofPieces ( PieceStand  new_stand  )  [inline]

void osl::checkmate::CheckHashRecord::setDisproofPiecesDefense ( Player  defense  )  [inline]

bool osl::checkmate::CheckHashRecord::hasProofPieces (  )  const [inline]

bool osl::checkmate::CheckHashRecord::hasDisproofPieces (  )  const [inline]

const PieceStand osl::checkmate::CheckHashRecord::proofPieces (  )  const [inline]

const PieceStand osl::checkmate::CheckHashRecord::disproofPieces (  )  const [inline]

bool osl::checkmate::CheckHashRecord::isConsistent (  )  const

bool osl::checkmate::CheckHashRecord::hasBestMove (  )  const [inline]

CheckMove* osl::checkmate::CheckHashRecord::getBestMove (  )  [inline]

const CheckMove* osl::checkmate::CheckHashRecord::getBestMove (  )  const [inline]

checkHashRecord.h248 行で定義されています。

参照先 bestMove, check_assert, と hasBestMove().

bool osl::checkmate::CheckHashRecord::needMoveGeneration (  )  const [inline]

unsigned int osl::checkmate::CheckHashRecord::add ( unsigned int  a,
unsigned int  b 
) [inline]

checkHashRecord.h254 行で定義されています。

参照先 check_assert, osl::eval::max(), と useMaxInsteadOfSum.

template<Player Attacker>
template void osl::checkmate::CheckHashRecord::propagateCheckmateRecursive< WHITE > (  )  [inline, private]

template<Player Attacker>
template void osl::checkmate::CheckHashRecord::propagateNoCheckmateRecursive< WHITE > (  )  [inline, private]

template<Player Attacker>
void osl::checkmate::CheckHashRecord::propagateCheckmate ( ProofDisproof  pdp  )  [inline]

template<Player Attacker>
void osl::checkmate::CheckHashRecord::propagateNoCheckmate ( ProofDisproof  pdp  )  [inline]

void osl::checkmate::CheckHashRecord::confirmParent ( CheckHashRecord parent  )  [inline]

unsigned int osl::checkmate::CheckHashRecord::selectBestAttackMove ( const PathEncoding path,
const TwinTable table,
unsigned int &  currentBestProofNumber,
unsigned int &  currentSecondBestProofNumber,
unsigned int &  currentDisproofNumber,
unsigned int &  currentBestDisproofNumber,
ProofDisproof bestResultInSolved,
CheckMove *&  bestChild 
)

unsigned int osl::checkmate::CheckHashRecord::selectBestAttackMoveMain ( const PathEncoding path,
const TwinTable table,
unsigned int &  currentBestProofNumber,
unsigned int &  currentSecondBestProofNumber,
unsigned int &  currentDisproofNumber,
unsigned int &  currentBestDisproofNumber,
ProofDisproof bestResultInSolved,
CheckMove *&  bestChild 
)

unsigned int osl::checkmate::CheckHashRecord::selectBestDefenseMove ( const PathEncoding path,
const TwinTable table,
unsigned int &  currentBestDisproofNumber,
unsigned int &  currentSecondBestDisproofNumber,
unsigned int &  currentProofNumber,
unsigned int &  currentBestProofNumber,
ProofDisproof bestResultInSolved,
CheckMove *&  bestChild 
)

ɸ¦ moves ̤įᡤƼ(dis)proof number 򽸷פμ bestChild ¸.

finalǤʤproof number Ʊʤdisproof number

  • Checkmate NoEscape (ͤβǽ뤫)
    引数:
    bestResultInSolved (bestChild==0) λˡäȤޤpdp
    戻り値:
    ƤʤҶ disproof number Τʿ

参照元 osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::defense().

void osl::checkmate::CheckHashRecord::dump ( std::ostream &  os,
int  dumpDepth 
) const

void osl::checkmate::CheckHashRecord::dump ( int  dumpDepth = 1  )  const

void osl::checkmate::CheckHashRecord::updateBestResultInSolvedAttack ( const ProofDisproof pdp  )  [inline]

void osl::checkmate::CheckHashRecord::updateBestResultInSolvedDefense ( const ProofDisproof pdp  )  [inline]

void osl::checkmate::CheckHashRecord::addToSolved ( CheckMove move,
const ProofDisproof pdp,
bool  isAttack 
) [inline]

void osl::checkmate::CheckHashRecord::addToSolvedInAttack ( CheckMove move,
const ProofDisproof pdp 
) [inline]

void osl::checkmate::CheckHashRecord::addToSolvedInDefense ( CheckMove move,
const ProofDisproof pdp 
) [inline]

void osl::checkmate::CheckHashRecord::setLoopDetection ( const PathEncoding path,
const CheckMove move,
const CheckHashRecord loopTo 
) [inline]

template<Player Attacker>
void osl::checkmate::CheckHashRecord::setLoopDetectionTryMerge ( const PathEncoding path,
CheckMove move,
const CheckHashRecord loopTo 
) [inline]

void osl::checkmate::CheckHashRecord::setLoopDetection ( const PathEncoding path,
const CheckHashRecord loopTo 
) [inline]

checkHashRecord.h415 行で定義されています。

参照先 setLoopDetection().

template<Player Attacker>
void osl::checkmate::CheckHashRecord::setLoopDetectionInAttack ( const PathEncoding path  )  [inline]

const TwinEntry* osl::checkmate::CheckHashRecord::findLoop ( const PathEncoding path,
const TwinTable table 
) const [inline]

const TwinEntry* osl::checkmate::CheckHashRecord::findLoopInList ( const PathEncoding path  )  const [inline]


変数

õΥꥹ

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

参照元 addToSolved(), osl::checkmate::analyzer::ProofTreeTraverser::andNode(), osl::checkmate::analyzer::ProofTreeDepth::andNode(), osl::checkmate::analyzer::DisproofTreeTraverser::andNode(), osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleDisprover< Table >::attack(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::attack(), osl::checkmate::OracleDisprover< Table >::confirmNoEscape(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleDisprover< Table >::defense(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::defense(), osl::checkmate::DefenseSimulation< P >::disproofDropSibling(), dumpTree(), osl::checkmate::CheckmateRecorder::enter(), osl::checkmate::ProofOracleDefense< P >::expandOracle(), osl::checkmate::DisproofOracleAttack< P >::expandOracle(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::hasEscapeMove(), needMoveGeneration(), osl::checkmate::operator<<(), osl::checkmate::analyzer::ProofTreeTraverser::orNode(), osl::checkmate::analyzer::ProofTreeDepth::orNode(), osl::checkmate::analyzer::DisproofTreeTraverser::orNode(), osl::checkmate::BlockingSimulation< P >::proof(), osl::checkmate::BlockingSimulation< P >::proofSibling(), osl::checkmate::CheckTableUtil::registerImmediateCheckmateInDefense(), selectBestAttackMoveMain(), setLoopDetectionInAttack(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::setUpAttackNode(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::setUpDefenseNode(), osl::checkmate::analyzer::ShowAllTree::show(), osl::checkmate::OracleProver< Table >::testFixedDepthAttack(), と osl::checkmate::traverse().

ͤξεͤޤ finalByDominance ξ硢̤ΥΡɤ (solved)moves ؤ礬

checkHashRecord.h66 行で定義されています。

参照元 osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleDisprover< Table >::attack(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::attack(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleDisprover< Table >::defense(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::defense(), osl::checkmate::DisproofOracleDefense< P >::DisproofOracleDefense(), getBestMove(), hasBestMove(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::hasCheckmateMove(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::hasEscapeMove(), osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningState(), osl::checkmate::analyzer::ProofTreeTraverser::orNode(), osl::checkmate::analyzer::ProofTreeDepth::orNode(), osl::checkmate::CheckTableUtil::registerImmediateCheckmateInDefense(), setDisproofByDominance(), setDisproofPiecesDefense(), setLoopDetectionTryMerge(), setProofByDominance(), setProofPiecesAttack(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::setUpAttackNode(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::setUpDefenseNode(), osl::checkmate::analyzer::TreeStreamWriter::showMove(), osl::checkmate::analyzer::DotWriter::showMove(), osl::checkmate::analyzer::TreeStreamWriter::showRecord(), と osl::checkmate::OracleProver< Table >::testFixedDepthAttack().

ͥ۴طǵ/Եͤʬä˵Ͽ

checkHashRecord.h71 行で定義されています。

参照元 finalByDominance(), setFinalByDominance(), と ~CheckHashRecord().

ߤζ̤λ

checkHashRecord.h79 行で定義されています。

参照元 stand().

checkHashRecord.h79 行で定義されています。

参照元 stand().

ޤȿڶ: (Ե)ξΤߥåȤ

checkHashRecord.h81 行で定義されています。

参照元 disproofPieces(), proofPieces(), setDisproofPieces(), と setProofPieces().

checkHashRecord.h96 行で定義されています。

proof (disproof) pieces 򥻥åȤɤ.

checkHashRecord.h102 行で定義されています。

参照元 disproofPieces(), hasDisproofPieces(), hasProofPieces(), isConsistent(), proofPieces(), setDisproofPieces(), setFinalByDominance(), と setProofPieces().


この構造体の説明は次のファイルから生成されました:

Thu Oct 8 05:01:15 2009に生成されました。  doxygen 1.5.6