osl::checkmate::ProofTreeDepthDfpn Class Reference

詰までの手数を数える. More...

`#include <proofTreeDepthDfpn.h>`

## Classes

struct | Table
| 深さを記憶するテーブル. More...

## Public Member Functions

| ProofTreeDepthDfpn (const DfpnTable &table)
| ~ProofTreeDepthDfpn ()
int | depth (const HashKey &key, const NumEffectState &state, bool is_or_node) const
void | retrievePV (const NumEffectState &state, bool is_or_node, std::vector< Move > &pv) const

## Private Member Functions

int | orNode (const HashKey &key, Move &best_move, int height=0) const
int | andNode (const HashKey &key, Move &best_move, int height=0) const

## Private Attributes

std::unique_ptr< Table > | table

## Detailed Description

詰までの手数を数える.

詰将棋ルーチン次第で，無駄合なども含まれるため 人間の感覚と一致するとは限らない．

Definition at line 21 of file proofTreeDepthDfpn.h.

## Constructor & Destructor Documentation

## ProofTreeDepthDfpn()

osl::checkmate::ProofTreeDepthDfpn::ProofTreeDepthDfpn | ( | const DfpnTable & | table | ) |

explicit

Definition at line 73 of file proofTreeDepthDfpn.cc.

References table.

## ~ProofTreeDepthDfpn()

osl::checkmate::ProofTreeDepthDfpn::~ProofTreeDepthDfpn | ( |  | ) |

Definition at line 79 of file proofTreeDepthDfpn.cc.

## Member Function Documentation

## andNode()

int osl::checkmate::ProofTreeDepthDfpn::andNode | ( | const HashKey & | key,
|  | Move & | best_move,
|  | int | height = 0 ) const

private

Definition at line 175 of file proofTreeDepthDfpn.cc.

References osl::alt(), osl::BLACK, depth(), osl::checkmate::Dfpn::generateEscape(), osl::hash::HashKey::newHashWithMove(), orNode(), and table.

Referenced by depth(), orNode(), and retrievePV().

## depth()

int osl::checkmate::ProofTreeDepthDfpn::depth | ( | const HashKey & | key,
|  | const NumEffectState & | state,
|  | bool | is_or_node ) const

Definition at line 84 of file proofTreeDepthDfpn.cc.

References andNode(), orNode(), and table.

Referenced by andNode(), osl::checkmate::ProofTreeDepthDfpn::Table::expectMoreDepth(), osl::checkmate::ProofTreeDepthDfpn::Table::find(), orNode(), and osl::checkmate::ProofTreeDepthDfpn::Table::store().

## orNode()

int osl::checkmate::ProofTreeDepthDfpn::orNode | ( | const HashKey & | key,
|  | Move & | best_move,
|  | int | height = 0 ) const

private

Definition at line 114 of file proofTreeDepthDfpn.cc.

References andNode(), depth(), osl::checkmate::FixedDepthSearcher::hasCheckmateMoveOfTurn(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::hash::HashKey::newHashWithMove(), osl::PieceStand::nextStand(), osl::checkmate::DfpnRecordBase::proof_disproof, table, and osl::WHITE.

Referenced by andNode(), depth(), and retrievePV().

## retrievePV()

void osl::checkmate::ProofTreeDepthDfpn::retrievePV | ( | const NumEffectState & | state,
|  | bool | is_or_node,
|  | std::vector< Move > & | pv ) const

Definition at line 92 of file proofTreeDepthDfpn.cc.

References andNode(), osl::Move::isNormal(), osl::hash::HashKey::newMakeMove(), orNode(), and table.

Referenced by osl::checkmate::Dfpn::hasCheckmateMove().

## Member Data Documentation

## table

std::unique_ptr<Table> osl::checkmate::ProofTreeDepthDfpn::table

private

Definition at line 24 of file proofTreeDepthDfpn.h.

Referenced by andNode(), depth(), orNode(), ProofTreeDepthDfpn(), and retrievePV().

The documentation for this class was generated from the following files:

- proofTreeDepthDfpn.h
- proofTreeDepthDfpn.cc