クラス osl::ntesuki::NtesukiRecord

ある局面について,その局面を n手すきで探索した場合の 結果を保持しておくクラス. [詳細]

#include <ntesukiRecord.h>

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

すべてのメンバ一覧

構成

class  UnVisitLock
class  VisitLock

Public 型

enum  IWScheme { no_iw = 0, strict_iw = 1, pn_iw = 2 }
enum  PSScheme { no_ps = 0, pn_ps = 1 }
enum  ISScheme { no_is = 0, tonshi_is = 1, delay_is = 2, normal_is = 3 }
typedef slist< NtesukiRecordRecordList
typedef slist< NtesukiRecord * > RecordPList

Public メソッド

 NtesukiRecord (signed short distance, const HashKey &key, const PieceStand &white_stand, RecordList *same_board_list)
 コンストラクタ.
 ~NtesukiRecord ()
Player turn () const
 手番
bool isBySimulation () const
 simulation によって値が決まったか
template<Player P>
const PieceStandgetPieceStand () const
 この局面でのプレイヤの持駒.
const PieceStandgetPieceStandSlow (Player P) const
template<Player A>
PieceStand calcProofPiecesOr (int pass_left, const NtesukiMove &m)
 証明駒を計算する.
template<Player A>
PieceStand calcProofPiecesAnd (int pass_left)
template<Player A>
void setProofPieces (int pass_left, const NtesukiResult &r, const NtesukiMove &m, const PieceStand *ps)
 証明駒を設定する.
template<osl::Player A>
void setDisproofPieces (int pass_left, const NtesukiResult &r, const NtesukiMove &m, const PieceStand *ps)
 反証駒を設定する.
template<Player A>
void setResult (int i, const NtesukiResult &r, const NtesukiMove &m, bool bs, const PieceStand *ps=NULL)
 探索の結果を格納する

  • A 攻撃側のプレイヤ

template<Player A>
const NtesukiResult getValue (int i) const
 このノードの NtesukiResult の値を調べる

  • A 攻撃側のプレイヤ

template<Player A>
const NtesukiResult getValueWithPath (int i, const PathEncoding path) const
template<Player A>
const NtesukiResult getValueOr (int i, const PathEncoding path, IWScheme iwscheme) const
template<Player A>
const NtesukiResult getValueAnd (int i, const PathEncoding path, IWScheme iwscheme, PSScheme psscheme) const
const NtesukiResult getValueSlow (const Player attacker, int i) const
const NtesukiResult getValueOfTurn (int i) const
const NtesukiResult valueBeforeFinal () const
int isWin (const Player attacker) const
template<Player A>
const NtesukiMovegetBestMove (int i) const
 登録されてる最善手を返す.
const NtesukiMovegetBestMoveSlow (Player attacker, int i) const
bool isVisited () const
 Loop になっているかチェック.
bool isFinal ()
void setVisited ()
void resetVisited ()
template<Player A>
bool isByFixed () const
 Fixed Depth Searcher によって値が設定されたか.
bool isByFixedSlow (Player attacker) const
template<Player A>
bool isNtesuki (int pass_left) const
 このノードが n手すきになっているか.
template<Player A>
void setNtesuki (int pass_left)
template<Player A>
bool hasTriedPropagatedOracle (int pass_left) const
 このノードで親から来た oracle を試したか
template<Player A>
void triedPropagatedOracle (int pass_left)
template<Player A>
PieceStand getPDPieces (int pass_left) const
 証明駒を得る
PieceStand getPDPiecesSlow (Player attacker, int pass_left) const
template<Player A>
void setPDPieces (int pass_left, const PieceStand p)
bool readInterpose (int pass_left) const
 無駄合いを読むべきか.
void setReadInterpose (int pass_left)
bool readCheckDefense (int pass_left) const
 defense の際に王手を読むべきか.
void setReadCheckDefense (int pass_left)
bool readNonAttack (int pass_left) const
 attack の際に,ヒューリスティックに判別された攻撃手以外も読むか.
void setReadNonAttack (int pass_left)
template<Player A>
bool useOld (int pass_left) const
 old child を読むべきか.
template<Player A>
void setUseOld (int pass_left, bool value)
template<Player A>
bool isLoopWithPath (int pass_left, const PathEncoding &path) const
 この path で loop になるか.
template<Player A>
void setLoopWithPath (int pass_left, const PathEncoding &path)
template<Player A>
bool hasLoop (int pass_left) const
template<Player P>
bool setUpNode ()
 Fixed Depth Searcher を呼ぶ等.
template<Player P>
void setUpAttackNode ()
template<Player P>
void setUpDefenseNode ()
void updateWithChild (NtesukiRecord *child, int pass_left)
template<Player P>
void generateMoves (NtesukiMoveList &moves, int pass_left, bool all_moves)
 手の生成.
bool operator== (const NtesukiRecord &record)
unsigned int getChildCount () const
void addChildCount (unsigned int i)
unsigned int getReadCount () const
unsigned int getWrittenCount () const
void checkNewParent (NtesukiRecord *p)
template<osl::Player P>
rzones_trzone ()
template<Player P>
bool isDominatedByProofPieces (const NtesukiRecord *record, int pass_left) const
template<Player P>
bool isDominatedByDisproofPieces (const NtesukiRecord *record, int pass_left) const
template<Player P>
bool isBetterFor (NtesukiRecord *record)

Public 変数

PieceStand black_stand
 各プレイヤの持駒
PieceStand white_stand
unsigned short distance
 root からの最短 path の距離
HashKey key
 局面の HashKey
RecordListsame_board_list
 盤面・手番が同じで,持駒だけ違う局面のリスト
RecordPList parents
 親局面のリスト
int rev_refcount
bool is_split
bool do_oracle_attack
 DAG の分流点.
bool do_oracle_aunt
bool rzone_move_generation

Static Public 変数

static const unsigned int SIZE = 2
 各配列のサイズ.
static unsigned int fixed_search_depth = 0
 探索関係の色々な情報.
static unsigned int inversion_cost = 0
static bool use_dominance = false
static int pass_count = 0
static bool max_for_split = false
static bool use_rzone_move_generation = false
static bool delay_lame_long = false
static bool use_9rzone = false
static NumEffectState * state = NULL
static NtesukiMoveGeneratormg = NULL
static NtesukiTabletable = NULL
static unsigned int split_count = 0
 分流点がいくつあるか.
static unsigned int confluence_count = 0
 合流点がいくつあるか.

Private 型

typedef CArray< NtesukiResult,
SIZE
values_t
typedef CArray< NtesukiMove, SIZEmoves_t
typedef CArray< short, SIZE-1 > nodesread_t
typedef CArray< PieceStand, SIZEpdpieces_t
typedef CArray< bool, SIZEflags_t
typedef CArray
< PathEncodingList, SIZE
pell_t
typedef CArray< Rzone, SIZErzones_t

Private メソッド

bool isNewParent (const NtesukiRecord *p) const
void find_split (NtesukiRecord *rhs, RecordPList &lvisited, RecordPList &rvisited)
bool find_split_right (NtesukiRecord *rhs, RecordPList &lvisited, RecordPList &rvisited)
void addNewParent (NtesukiRecord *p)
 NtesukiRecord ()
template<Player P>
bool & by_fixed ()
template<Player P>
const bool & by_fixed () const
template<Player P>
PieceStandpiece_stand ()
template<Player P>
const PieceStandpiece_stand () const
template<Player P>
values_tvalues ()
template<Player P>
const values_tvalues () const
template<Player P>
moves_tbest_move ()
template<Player P>
const moves_tbest_move () const
template<Player P>
pdpieces_tpdpieces ()
template<Player P>
const pdpieces_tpdpieces () const
template<Player P>
flags_tis_ntesuki ()
template<Player P>
const flags_tis_ntesuki () const
template<Player P>
flags_tpropagated_oracle ()
template<Player P>
const flags_t propagated_oracle () const
template<Player P>
flags_tuse_old ()
template<Player P>
const flags_t use_old () const
template<Player P>
pell_tloop_path_list ()
template<Player P>
const pell_tloop_path_list () const
template<Player P>
void setFinal (int i, const NtesukiResult &r, const NtesukiMove &m, const PieceStand *ps)
void lookup_same_board_list ()
 Dominace の伝播用.
template<Player P>
void propagate_proof (int pass_left)
template<Player P>
void propagate_disproof (int pass_left)

Private 変数

values_t values_black
values_t values_white
moves_t best_move_black
moves_t best_move_white
pdpieces_t pd_pieces_black
pdpieces_t pd_pieces_white
pell_t loop_path_list_black
 同一の局面で,Loop になっているものの Path
pell_t loop_path_list_white
unsigned int child_count
unsigned int read_count
unsigned int written_count
NtesukiResult value_before_final
bool visited
 setResult で final な値を設定される直前の result
bool by_simulation
bool by_fixed_black
bool by_fixed_white
bool already_set_up
bool final
flags_t read_interpose
flags_t read_check_defense
flags_t read_non_attack
flags_t is_ntesuki_black
flags_t is_ntesuki_white
flags_t propagated_oracle_black
flags_t propagated_oracle_white
flags_t use_old_black
flags_t use_old_white
rzones_t rzone_black
rzones_t rzone_white

説明

ある局面について,その局面を n手すきで探索した場合の 結果を保持しておくクラス.

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


型定義

typedef CArray<bool, SIZE> osl::ntesuki::NtesukiRecord::flags_t [private]

ntesukiRecord.h521 行で定義されています。

ntesukiRecord.h518 行で定義されています。

typedef CArray<short, SIZE - 1> osl::ntesuki::NtesukiRecord::nodesread_t [private]

ntesukiRecord.h519 行で定義されています。

ntesukiRecord.h520 行で定義されています。

ntesukiRecord.h522 行で定義されています。

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

ntesukiRecord.h36 行で定義されています。

typedef CArray<Rzone, SIZE> osl::ntesuki::NtesukiRecord::rzones_t [private]

ntesukiRecord.h523 行で定義されています。

ntesukiRecord.h517 行で定義されています。


列挙型

列挙型の値:
no_is 
tonshi_is 
delay_is 
normal_is 

ntesukiRecord.h48 行で定義されています。

列挙型の値:
no_iw 
strict_iw 
pn_iw 

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

列挙型の値:
no_ps 
pn_ps 

ntesukiRecord.h45 行で定義されています。


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

osl::ntesuki::NtesukiRecord::NtesukiRecord ( signed short  distance,
const HashKey &  key,
const PieceStand white_stand,
RecordList same_board_list 
)
osl::ntesuki::NtesukiRecord::~NtesukiRecord (  )  [inline]

ntesukiRecord.h100 行で定義されています。

osl::ntesuki::NtesukiRecord::NtesukiRecord (  )  [private]

関数

void osl::ntesuki::NtesukiRecord::addChildCount ( unsigned int  i  )  [inline]
void osl::ntesuki::NtesukiRecord::addNewParent ( NtesukiRecord p  )  [inline, private]

ntesukiRecord.h485 行で定義されています。

参照先 isNewParent(), ntesuki_assert, parents, と rev_refcount.

参照元 checkNewParent().

template<Player P>
const moves_t& osl::ntesuki::NtesukiRecord::best_move (  )  const [inline, private]

ntesukiRecord.h618 行で定義されています。

参照先 best_move_black, best_move_white, と osl::BLACK.

template<Player P>
moves_t& osl::ntesuki::NtesukiRecord::best_move (  )  [inline, private]

ntesukiRecord.h610 行で定義されています。

参照先 best_move_black, best_move_white, と osl::BLACK.

参照元 lookup_same_board_list(), setUpAttackNode(), と setUpDefenseNode().

template<Player P>
const bool& osl::ntesuki::NtesukiRecord::by_fixed (  )  const [inline, private]

ntesukiRecord.h570 行で定義されています。

参照先 osl::BLACK, by_fixed_black, と by_fixed_white.

template<Player P>
bool& osl::ntesuki::NtesukiRecord::by_fixed (  )  [inline, private]

ntesukiRecord.h562 行で定義されています。

参照先 osl::BLACK, by_fixed_black, と by_fixed_white.

template<osl::Player P>
osl::PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesAnd ( int  pass_left  )  [inline]
template<osl::Player P>
osl::PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesOr ( int  pass_left,
const NtesukiMove m 
) [inline]
void osl::ntesuki::NtesukiRecord::checkNewParent ( NtesukiRecord p  )  [inline]
void osl::ntesuki::NtesukiRecord::find_split ( NtesukiRecord rhs,
RecordPList lvisited,
RecordPList rvisited 
) [inline, private]

ntesukiRecord.h398 行で定義されています。

参照先 osl::find(), find_split_right(), と parents.

参照元 checkNewParent().

bool osl::ntesuki::NtesukiRecord::find_split_right ( NtesukiRecord rhs,
RecordPList lvisited,
RecordPList rvisited 
) [inline, private]

ntesukiRecord.h438 行で定義されています。

参照先 osl::find(), is_split, parents, result, と split_count.

参照元 find_split().

template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::generateMoves< WHITE > ( NtesukiMoveList moves,
int  pass_left,
bool  all_moves 
) [inline]
template<osl::Player P>
const osl::ntesuki::NtesukiMove & osl::ntesuki::NtesukiRecord::getBestMove ( int  i  )  const [inline]
const osl::ntesuki::NtesukiMove & osl::ntesuki::NtesukiRecord::getBestMoveSlow ( Player  attacker,
int  i 
) const

ntesukiRecord.cc184 行で定義されています。

参照先 osl::BLACK.

unsigned int osl::ntesuki::NtesukiRecord::getChildCount (  )  const [inline]
template<osl::Player P>
template PieceStand osl::ntesuki::NtesukiRecord::getPDPieces< WHITE > ( int  pass_left  )  const [inline]
osl::PieceStand osl::ntesuki::NtesukiRecord::getPDPiecesSlow ( Player  attacker,
int  pass_left 
) const

ntesukiRecord.cc204 行で定義されています。

参照先 osl::BLACK.

template<Player P>
const PieceStand& osl::ntesuki::NtesukiRecord::getPieceStand (  )  const [inline]

この局面でのプレイヤの持駒.

  • P プレイヤ

ntesukiRecord.h121 行で定義されています。

参照元 osl::ntesuki::OracleProverLight::startFromAttack(), と osl::ntesuki::OracleProverLight::startFromDefense().

const PieceStand& osl::ntesuki::NtesukiRecord::getPieceStandSlow ( Player  P  )  const [inline]
unsigned int osl::ntesuki::NtesukiRecord::getReadCount (  )  const [inline]

ntesukiRecord.h376 行で定義されています。

参照先 read_count.

template<osl::Player P>
const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::getValue ( int  i  )  const [inline]
template<osl::Player P>
template const NtesukiResult osl::ntesuki::NtesukiRecord::getValueAnd< WHITE > ( int  i,
const PathEncoding  path,
IWScheme  iwscheme,
PSScheme  psscheme 
) const [inline]
const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::getValueOfTurn ( int  i  )  const

ntesukiRecord.cc170 行で定義されています。

参照先 getValueSlow(), と turn().

template<osl::Player P>
template const NtesukiResult osl::ntesuki::NtesukiRecord::getValueOr< WHITE > ( int  i,
const PathEncoding  path,
IWScheme  iwscheme 
) const [inline]
const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::getValueSlow ( const Player  attacker,
int  i 
) const

ntesukiRecord.cc160 行で定義されています。

参照先 osl::BLACK.

参照元 getValueOfTurn(), と isWin().

template<osl::Player P>
template const NtesukiResult osl::ntesuki::NtesukiRecord::getValueWithPath< WHITE > ( int  i,
const PathEncoding  path 
) const [inline]
unsigned int osl::ntesuki::NtesukiRecord::getWrittenCount (  )  const [inline]

ntesukiRecord.h381 行で定義されています。

参照先 written_count.

template<Player A>
bool osl::ntesuki::NtesukiRecord::hasLoop ( int  pass_left  )  const [inline]

ntesukiRecord.h327 行で定義されています。

template<osl::Player P>
template bool osl::ntesuki::NtesukiRecord::hasTriedPropagatedOracle< WHITE > ( int  pass_left  )  const [inline]

このノードで親から来た oracle を試したか

ntesukiRecord.tcc1054 行で定義されています。

template<Player P>
const flags_t& osl::ntesuki::NtesukiRecord::is_ntesuki (  )  const [inline, private]

ntesukiRecord.h650 行で定義されています。

参照先 osl::BLACK, is_ntesuki_black, と is_ntesuki_white.

template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::is_ntesuki (  )  [inline, private]

ntesukiRecord.h642 行で定義されています。

参照先 osl::BLACK, is_ntesuki_black, と is_ntesuki_white.

template<osl::Player P>
bool osl::ntesuki::NtesukiRecord::isBetterFor ( NtesukiRecord record  )  [inline]

ntesukiRecord.tcc867 行で定義されています。

参照先 osl::PieceStand::hasMoreThan(), と key.

template<osl::Player P>
bool osl::ntesuki::NtesukiRecord::isByFixed (  )  const [inline]

Fixed Depth Searcher によって値が設定されたか.

ntesukiRecord.tcc1071 行で定義されています。

bool osl::ntesuki::NtesukiRecord::isByFixedSlow ( Player  attacker  )  const

ntesukiRecord.cc194 行で定義されています。

参照先 osl::BLACK.

bool osl::ntesuki::NtesukiRecord::isBySimulation (  )  const [inline]

simulation によって値が決まったか

ntesukiRecord.h111 行で定義されています。

参照先 by_simulation.

template<osl::Player P>
bool osl::ntesuki::NtesukiRecord::isDominatedByDisproofPieces ( const NtesukiRecord record,
int  pass_left 
) const [inline]

ntesukiRecord.tcc850 行で定義されています。

参照先 getPDPieces(), getValue(), と osl::PieceStand::isSuperiorOrEqualTo().

template<osl::Player P>
bool osl::ntesuki::NtesukiRecord::isDominatedByProofPieces ( const NtesukiRecord record,
int  pass_left 
) const [inline]
bool osl::ntesuki::NtesukiRecord::isFinal (  )  [inline]

ntesukiRecord.h227 行で定義されています。

参照元 getValueAnd(), getValueOr(), getValueWithPath(), と setResult().

template<osl::Player P>
template bool osl::ntesuki::NtesukiRecord::isLoopWithPath< WHITE > ( int  pass_left,
const PathEncoding path 
) const [inline]

この path で loop になるか.

ntesukiRecord.tcc897 行で定義されています。

参照元 osl::ntesuki::NtesukiSearcher::defenseWithPlayer(), と osl::ntesuki::NtesukiSearcher::selectMoveDefense().

bool osl::ntesuki::NtesukiRecord::isNewParent ( const NtesukiRecord p  )  const [inline, private]

ntesukiRecord.h388 行で定義されています。

参照先 parents.

参照元 addNewParent(), と checkNewParent().

template<osl::Player P>
template bool osl::ntesuki::NtesukiRecord::isNtesuki< WHITE > ( int  pass_left  )  const [inline]

このノードが n手すきになっているか.

ntesukiRecord.tcc1037 行で定義されています。

bool osl::ntesuki::NtesukiRecord::isVisited (  )  const [inline]
int osl::ntesuki::NtesukiRecord::isWin ( const Player  attacker  )  const [inline]

ntesukiRecord.h203 行で定義されています。

参照先 getValueSlow(), と SIZE.

void osl::ntesuki::NtesukiRecord::lookup_same_board_list (  )  [private]

Dominace の伝播用.

ntesukiRecord.cc101 行で定義されています。

参照先 best_move(), osl::BLACK, CATCH_DFPN, same_board_list, SIZE, TRY_DFPN, と osl::WHITE.

参照元 NtesukiRecord().

template<Player P>
const pell_t& osl::ntesuki::NtesukiRecord::loop_path_list (  )  const [inline, private]

ntesukiRecord.h698 行で定義されています。

参照先 osl::BLACK, loop_path_list_black, と loop_path_list_white.

template<Player P>
pell_t& osl::ntesuki::NtesukiRecord::loop_path_list (  )  [inline, private]

ntesukiRecord.h690 行で定義されています。

参照先 osl::BLACK, loop_path_list_black, と loop_path_list_white.

bool osl::ntesuki::NtesukiRecord::operator== ( const NtesukiRecord record  )  [inline]

ntesukiRecord.h360 行で定義されています。

参照先 key.

template<Player P>
const pdpieces_t& osl::ntesuki::NtesukiRecord::pdpieces (  )  const [inline, private]

ntesukiRecord.h634 行で定義されています。

参照先 osl::BLACK, pd_pieces_black, と pd_pieces_white.

template<Player P>
pdpieces_t& osl::ntesuki::NtesukiRecord::pdpieces (  )  [inline, private]

ntesukiRecord.h626 行で定義されています。

参照先 osl::BLACK, pd_pieces_black, と pd_pieces_white.

template<Player P>
const PieceStand& osl::ntesuki::NtesukiRecord::piece_stand (  )  const [inline, private]

ntesukiRecord.h586 行で定義されています。

参照先 osl::BLACK, black_stand, と white_stand.

template<Player P>
PieceStand& osl::ntesuki::NtesukiRecord::piece_stand (  )  [inline, private]

ntesukiRecord.h578 行で定義されています。

参照先 osl::BLACK, black_stand, と white_stand.

template<osl::Player P>
void osl::ntesuki::NtesukiRecord::propagate_disproof ( int  pass_left  )  [inline, private]

ntesukiRecord.tcc56 行で定義されています。

参照先 CATCH_DFPN, ntesuki_assert, same_board_list, と TRY_DFPN.

template<osl::Player P>
void osl::ntesuki::NtesukiRecord::propagate_proof ( int  pass_left  )  [inline, private]

ntesukiRecord.tcc17 行で定義されています。

参照先 CATCH_DFPN, ntesuki_assert, same_board_list, と TRY_DFPN.

template<Player P>
const flags_t osl::ntesuki::NtesukiRecord::propagated_oracle (  )  const [inline, private]

ntesukiRecord.h666 行で定義されています。

参照先 osl::BLACK, propagated_oracle_black, と propagated_oracle_white.

template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::propagated_oracle (  )  [inline, private]

ntesukiRecord.h658 行で定義されています。

参照先 osl::BLACK, propagated_oracle_black, と propagated_oracle_white.

bool osl::ntesuki::NtesukiRecord::readCheckDefense ( int  pass_left  )  const [inline]

defense の際に王手を読むべきか.

ntesukiRecord.h282 行で定義されています。

参照先 read_check_defense.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveDefense().

bool osl::ntesuki::NtesukiRecord::readInterpose ( int  pass_left  )  const [inline]

無駄合いを読むべきか.

ntesukiRecord.h269 行で定義されています。

参照先 read_interpose.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveDefense().

bool osl::ntesuki::NtesukiRecord::readNonAttack ( int  pass_left  )  const [inline]

attack の際に,ヒューリスティックに判別された攻撃手以外も読むか.

ntesukiRecord.h295 行で定義されています。

参照先 read_non_attack.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveAttack().

void osl::ntesuki::NtesukiRecord::resetVisited (  )  [inline]
template<osl::Player P>
rzones_t& osl::ntesuki::NtesukiRecord::rzone (  )  [inline]
template<osl::Player P>
void osl::ntesuki::NtesukiRecord::setDisproofPieces ( int  pass_left,
const NtesukiResult r,
const NtesukiMove m,
const PieceStand ps 
) [inline]
template<osl::Player P>
void osl::ntesuki::NtesukiRecord::setFinal ( int  i,
const NtesukiResult r,
const NtesukiMove m,
const PieceStand ps 
) [inline, private]

ntesukiRecord.tcc665 行で定義されています。

参照先 CATCH_DFPN, moves, ntesuki_assert, pass_count, SIZE, TRY_DFPN, turn(), と use_dominance.

template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setLoopWithPath< WHITE > ( int  pass_left,
const PathEncoding path 
) [inline]
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setNtesuki< WHITE > ( int  pass_left  )  [inline]
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setPDPieces< WHITE > ( int  pass_left,
const PieceStand  p 
) [inline]

ntesukiRecord.tcc1087 行で定義されています。

template<osl::Player A>
void osl::ntesuki::NtesukiRecord::setProofPieces ( int  pass_left,
const NtesukiResult r,
const NtesukiMove m,
const PieceStand ps 
) [inline]

証明駒を設定する.

  • A 攻撃側のプレイヤ

ntesukiRecord.tcc520 行で定義されています。

参照先 osl::D, osl::ntesuki::NtesukiTable::findWithMove(), getPDPieces(), osl::ntesuki::NtesukiMove::isPass(), osl::ntesuki::NtesukiMove::isValid(), ntesuki_assert, SIZE, と table.

void osl::ntesuki::NtesukiRecord::setReadCheckDefense ( int  pass_left  )  [inline]

ntesukiRecord.h287 行で定義されています。

参照先 read_check_defense.

void osl::ntesuki::NtesukiRecord::setReadInterpose ( int  pass_left  )  [inline]

ntesukiRecord.h274 行で定義されています。

参照先 read_interpose.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveDefense().

void osl::ntesuki::NtesukiRecord::setReadNonAttack ( int  pass_left  )  [inline]

ntesukiRecord.h300 行で定義されています。

参照先 read_non_attack.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveAttack().

template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setResult< WHITE > ( int  i,
const NtesukiResult r,
const NtesukiMove m,
bool  bs,
const PieceStand ps = NULL 
) [inline]
template<osl::Player T>
void osl::ntesuki::NtesukiRecord::setUpAttackNode (  )  [inline]
template<osl::Player T>
void osl::ntesuki::NtesukiRecord::setUpDefenseNode (  )  [inline]
template<osl::Player T>
template bool osl::ntesuki::NtesukiRecord::setUpNode< WHITE > (  )  [inline]
template<osl::Player A>
template void osl::ntesuki::NtesukiRecord::setUseOld< WHITE > ( int  pass_left,
bool  value 
) [inline]
void osl::ntesuki::NtesukiRecord::setVisited (  )  [inline]
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::triedPropagatedOracle< WHITE > ( int  pass_left  )  [inline]

ntesukiRecord.tcc1062 行で定義されています。

Player osl::ntesuki::NtesukiRecord::turn (  )  const [inline]
void osl::ntesuki::NtesukiRecord::updateWithChild ( NtesukiRecord child,
int  pass_left 
)

ntesukiRecord.cc90 行で定義されています。

参照先 osl::BLACK, rzone(), SIZE, と osl::WHITE.

template<Player P>
const flags_t osl::ntesuki::NtesukiRecord::use_old (  )  const [inline, private]

ntesukiRecord.h682 行で定義されています。

参照先 osl::BLACK, use_old_black, と use_old_white.

template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::use_old (  )  [inline, private]

ntesukiRecord.h674 行で定義されています。

参照先 osl::BLACK, use_old_black, と use_old_white.

template<osl::Player A>
template bool osl::ntesuki::NtesukiRecord::useOld< WHITE > ( int  pass_left  )  const [inline]

old child を読むべきか.

ntesukiRecord.tcc881 行で定義されています。

参照元 osl::ntesuki::NtesukiSearcher::selectMoveAttack(), と osl::ntesuki::NtesukiSearcher::selectMoveDefense().

const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::valueBeforeFinal (  )  const

ntesukiRecord.cc177 行で定義されています。

参照先 value_before_final.

template<Player P>
const values_t& osl::ntesuki::NtesukiRecord::values (  )  const [inline, private]

ntesukiRecord.h602 行で定義されています。

参照先 osl::BLACK, values_black, と values_white.

template<Player P>
values_t& osl::ntesuki::NtesukiRecord::values (  )  [inline, private]

ntesukiRecord.h594 行で定義されています。

参照先 osl::BLACK, values_black, と values_white.


変数

ntesukiRecord.h536 行で定義されています。

参照元 setUpNode().

ntesukiRecord.h525 行で定義されています。

参照元 best_move().

ntesukiRecord.h525 行で定義されています。

参照元 best_move().

各プレイヤの持駒

ntesukiRecord.h75 行で定義されています。

参照元 osl::ntesuki::operator<<(), と piece_stand().

ntesukiRecord.h535 行で定義されています。

参照元 by_fixed().

ntesukiRecord.h535 行で定義されています。

参照元 by_fixed().

ntesukiRecord.h534 行で定義されています。

参照元 isBySimulation(), と setResult().

unsigned int osl::ntesuki::NtesukiRecord::child_count [mutable, private]

ntesukiRecord.h529 行で定義されています。

参照元 addChildCount(), と getChildCount().

合流点がいくつあるか.

ntesukiRecord.h70 行で定義されています。

参照元 checkNewParent(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), と osl::ntesuki::NtesukiSearcher::~NtesukiSearcher().

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

参照元 generateMoves().

DAG の分流点.

ntesukiRecord.h541 行で定義されています。

参照元 osl::ntesuki::NtesukiSearcher::defenseWithPlayer().

ntesukiRecord.h546 行で定義されています。

参照元 osl::ntesuki::NtesukiSearcher::defenseWithPlayer().

ntesukiRecord.h537 行で定義されています。

探索関係の色々な情報.

ntesukiRecord.h56 行で定義されています。

参照元 osl::ntesuki::OracleProverLight::attack(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), setUpAttackNode(), と setUpDefenseNode().

ntesukiRecord.h57 行で定義されています。

参照元 getValueAnd(), と osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

ntesukiRecord.h555 行で定義されています。

参照元 is_ntesuki(), と NtesukiRecord().

ntesukiRecord.h555 行で定義されています。

参照元 is_ntesuki(), と NtesukiRecord().

同一の局面で,Loop になっているものの Path

ntesukiRecord.h528 行で定義されています。

参照元 loop_path_list().

ntesukiRecord.h528 行で定義されています。

参照元 loop_path_list().

ntesukiRecord.h526 行で定義されています。

参照元 pdpieces().

ntesukiRecord.h526 行で定義されています。

参照元 pdpieces().

ntesukiRecord.h556 行で定義されています。

参照元 NtesukiRecord(), と propagated_oracle().

ntesukiRecord.h556 行で定義されています。

参照元 NtesukiRecord(), と propagated_oracle().

ntesukiRecord.h553 行で定義されています。

参照元 NtesukiRecord(), readCheckDefense(), と setReadCheckDefense().

unsigned int osl::ntesuki::NtesukiRecord::read_count [mutable, private]

ntesukiRecord.h529 行で定義されています。

参照元 getReadCount(), getValue(), getValueAnd(), getValueOr(), と getValueWithPath().

ntesukiRecord.h552 行で定義されています。

参照元 NtesukiRecord(), readInterpose(), と setReadInterpose().

ntesukiRecord.h554 行で定義されています。

参照元 NtesukiRecord(), readNonAttack(), と setReadNonAttack().

ntesukiRecord.h91 行で定義されています。

参照元 addNewParent(), と osl::ntesuki::NtesukiTable::Table::collectGarbage().

ntesukiRecord.h558 行で定義されています。

参照元 rzone().

ntesukiRecord.h558 行で定義されています。

参照元 rzone().

盤面・手番が同じで,持駒だけ違う局面のリスト

ntesukiRecord.h87 行で定義されています。

参照元 lookup_same_board_list(), propagate_disproof(), と propagate_proof().

const unsigned int osl::ntesuki::NtesukiRecord::SIZE = 2 [static]

各配列のサイズ.

SIZE - 1 手すきまで調べられる.

ntesukiRecord.h40 行で定義されています。

参照元 isWin(), lookup_same_board_list(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), osl::ntesuki::operator<<(), setFinal(), setProofPieces(), setResult(), setUpDefenseNode(), と updateWithChild().

unsigned int osl::ntesuki::NtesukiRecord::split_count = 0 [static]

分流点がいくつあるか.

ntesukiRecord.h70 行で定義されています。

参照元 find_split_right(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), と osl::ntesuki::NtesukiSearcher::~NtesukiSearcher().

osl::NumEffectState * osl::ntesuki::NtesukiRecord::state = NULL [static]

ntesukiRecord.h63 行で定義されています。

参照元 osl::ntesuki::NtesukiMoveGenerator::generateWithRzone().

ntesukiRecord.h58 行で定義されています。

参照元 NtesukiRecord(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), と setFinal().

ntesukiRecord.h557 行で定義されています。

参照元 NtesukiRecord(), と use_old().

ntesukiRecord.h557 行で定義されています。

参照元 NtesukiRecord(), と use_old().

ntesukiRecord.h61 行で定義されています。

ntesukiRecord.h531 行で定義されています。

参照元 setResult(), と valueBeforeFinal().

ntesukiRecord.h524 行で定義されています。

参照元 NtesukiRecord(), と values().

ntesukiRecord.h524 行で定義されています。

参照元 NtesukiRecord(), と values().

setResult で final な値を設定される直前の result

ntesukiRecord.h533 行で定義されています。

参照元 isVisited(), resetVisited(), と setVisited().

unsigned int osl::ntesuki::NtesukiRecord::written_count [mutable, private]

ntesukiRecord.h529 行で定義されています。

参照元 getWrittenCount(), と setResult().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:26 2010に生成されました。  doxygen 1.6.3