クラス 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< NtesukiRecord > RecordList
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 PieceStand & getPieceStand () const
 この局面でのプレイヤの持駒.
const PieceStand & getPieceStandSlow (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 NtesukiMove & getBestMove (int i) const
 登録されてる最善手を返す.
const NtesukiMove & getBestMoveSlow (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_t & rzone ()
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
RecordList * same_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 NtesukiMoveGenerator * mg = NULL
static NtesukiTable * table = NULL
static unsigned int split_count = 0
 分流点がいくつあるか.
static unsigned int confluence_count = 0
 合流点がいくつあるか.

Private 型

typedef CArray< NtesukiResult,
SIZE > 
values_t
typedef CArray< NtesukiMove, SIZE > moves_t
typedef CArray< short, SIZE-1 > nodesread_t
typedef CArray< PieceStand, SIZE > pdpieces_t
typedef CArray< bool, SIZE > flags_t
typedef CArray
< PathEncodingList, SIZE > 
pell_t
typedef CArray< Rzone, SIZE > rzones_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>
PieceStand & piece_stand ()
template<Player P>
const PieceStand & piece_stand () const
template<Player P>
values_t & values ()
template<Player P>
const values_t & values () const
template<Player P>
moves_t & best_move ()
template<Player P>
const moves_t & best_move () const
template<Player P>
pdpieces_t & pdpieces ()
template<Player P>
const pdpieces_t & pdpieces () const
template<Player P>
flags_t & is_ntesuki ()
template<Player P>
const flags_t & is_ntesuki () const
template<Player P>
flags_t & propagated_oracle ()
template<Player P>
const flags_t propagated_oracle () const
template<Player P>
flags_t & use_old ()
template<Player P>
const flags_t use_old () const
template<Player P>
pell_t & loop_path_list ()
template<Player P>
const pell_t & loop_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.h の 32 行で定義されています。


型定義

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

ntesukiRecord.h の 521 行で定義されています。

ntesukiRecord.h の 518 行で定義されています。

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

ntesukiRecord.h の 519 行で定義されています。

ntesukiRecord.h の 520 行で定義されています。

ntesukiRecord.h の 522 行で定義されています。

ntesukiRecord.h の 35 行で定義されています。

ntesukiRecord.h の 36 行で定義されています。

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

ntesukiRecord.h の 523 行で定義されています。

ntesukiRecord.h の 517 行で定義されています。


列挙型

列挙型の値:
no_is 
tonshi_is 
delay_is 
normal_is 

ntesukiRecord.h の 48 行で定義されています。

列挙型の値:
no_iw 
strict_iw 
pn_iw 

ntesukiRecord.h の 41 行で定義されています。

列挙型の値:
no_ps 
pn_ps 

ntesukiRecord.h の 45 行で定義されています。


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

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

ntesukiRecord.h の 100 行で定義されています。

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

関数

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

ntesukiRecord.h の 485 行で定義されています。

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

参照元 checkNewParent().

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

ntesukiRecord.h の 618 行で定義されています。

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

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

ntesukiRecord.h の 610 行で定義されています。

参照先 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.h の 570 行で定義されています。

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

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

ntesukiRecord.h の 562 行で定義されています。

参照先 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.h の 398 行で定義されています。

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

参照元 checkNewParent().

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

ntesukiRecord.h の 438 行で定義されています。

参照先 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.cc の 184 行で定義されています。

参照先 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.cc の 204 行で定義されています。

参照先 osl::BLACK.

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

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

  • P プレイヤ

ntesukiRecord.h の 121 行で定義されています。

参照元 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.h の 376 行で定義されています。

参照先 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.cc の 170 行で定義されています。

参照先 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.cc の 160 行で定義されています。

参照先 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.h の 381 行で定義されています。

参照先 written_count.

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

ntesukiRecord.h の 327 行で定義されています。

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

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

ntesukiRecord.tcc の 1054 行で定義されています。

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

ntesukiRecord.h の 650 行で定義されています。

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

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

ntesukiRecord.h の 642 行で定義されています。

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

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

ntesukiRecord.tcc の 867 行で定義されています。

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

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

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

ntesukiRecord.tcc の 1071 行で定義されています。

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

ntesukiRecord.cc の 194 行で定義されています。

参照先 osl::BLACK.

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

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

ntesukiRecord.h の 111 行で定義されています。

参照先 by_simulation.

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

ntesukiRecord.tcc の 850 行で定義されています。

参照先 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.h の 227 行で定義されています。

参照元 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.tcc の 897 行で定義されています。

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

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

ntesukiRecord.h の 388 行で定義されています。

参照先 parents.

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

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

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

ntesukiRecord.tcc の 1037 行で定義されています。

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

ntesukiRecord.h の 203 行で定義されています。

参照先 getValueSlow(), と SIZE.

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

Dominace の伝播用.

ntesukiRecord.cc の 101 行で定義されています。

参照先 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.h の 698 行で定義されています。

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

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

ntesukiRecord.h の 690 行で定義されています。

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

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

ntesukiRecord.h の 360 行で定義されています。

参照先 key.

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

ntesukiRecord.h の 634 行で定義されています。

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

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

ntesukiRecord.h の 626 行で定義されています。

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

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

ntesukiRecord.h の 586 行で定義されています。

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

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

ntesukiRecord.h の 578 行で定義されています。

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

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

ntesukiRecord.tcc の 56 行で定義されています。

参照先 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.tcc の 17 行で定義されています。

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

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

ntesukiRecord.h の 666 行で定義されています。

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

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

ntesukiRecord.h の 658 行で定義されています。

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

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

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

ntesukiRecord.h の 282 行で定義されています。

参照先 read_check_defense.

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

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

無駄合いを読むべきか.

ntesukiRecord.h の 269 行で定義されています。

参照先 read_interpose.

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

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

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

ntesukiRecord.h の 295 行で定義されています。

参照先 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.tcc の 665 行で定義されています。

参照先 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.tcc の 1087 行で定義されています。

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

証明駒を設定する.

  • A 攻撃側のプレイヤ

ntesukiRecord.tcc の 520 行で定義されています。

参照先 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.h の 287 行で定義されています。

参照先 read_check_defense.

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

ntesukiRecord.h の 274 行で定義されています。

参照先 read_interpose.

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

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

ntesukiRecord.h の 300 行で定義されています。

参照先 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.tcc の 1062 行で定義されています。

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

ntesukiRecord.cc の 90 行で定義されています。

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

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

ntesukiRecord.h の 682 行で定義されています。

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

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

ntesukiRecord.h の 674 行で定義されています。

参照先 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.tcc の 881 行で定義されています。

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

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

ntesukiRecord.cc の 177 行で定義されています。

参照先 value_before_final.

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

ntesukiRecord.h の 602 行で定義されています。

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

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

ntesukiRecord.h の 594 行で定義されています。

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


変数

ntesukiRecord.h の 536 行で定義されています。

参照元 setUpNode().

ntesukiRecord.h の 525 行で定義されています。

参照元 best_move().

ntesukiRecord.h の 525 行で定義されています。

参照元 best_move().

各プレイヤの持駒

ntesukiRecord.h の 75 行で定義されています。

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

ntesukiRecord.h の 535 行で定義されています。

参照元 by_fixed().

ntesukiRecord.h の 535 行で定義されています。

参照元 by_fixed().

ntesukiRecord.h の 534 行で定義されています。

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

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

ntesukiRecord.h の 529 行で定義されています。

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

合流点がいくつあるか.

ntesukiRecord.h の 70 行で定義されています。

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

ntesukiRecord.h の 62 行で定義されています。

参照元 generateMoves().

DAG の分流点.

ntesukiRecord.h の 541 行で定義されています。

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

ntesukiRecord.h の 546 行で定義されています。

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

ntesukiRecord.h の 537 行で定義されています。

探索関係の色々な情報.

ntesukiRecord.h の 56 行で定義されています。

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

ntesukiRecord.h の 57 行で定義されています。

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

ntesukiRecord.h の 555 行で定義されています。

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

ntesukiRecord.h の 555 行で定義されています。

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

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

ntesukiRecord.h の 528 行で定義されています。

参照元 loop_path_list().

ntesukiRecord.h の 528 行で定義されています。

参照元 loop_path_list().

ntesukiRecord.h の 526 行で定義されています。

参照元 pdpieces().

ntesukiRecord.h の 526 行で定義されています。

参照元 pdpieces().

ntesukiRecord.h の 556 行で定義されています。

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

ntesukiRecord.h の 556 行で定義されています。

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

ntesukiRecord.h の 553 行で定義されています。

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

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

ntesukiRecord.h の 529 行で定義されています。

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

ntesukiRecord.h の 552 行で定義されています。

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

ntesukiRecord.h の 554 行で定義されています。

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

ntesukiRecord.h の 91 行で定義されています。

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

ntesukiRecord.h の 558 行で定義されています。

参照元 rzone().

ntesukiRecord.h の 558 行で定義されています。

参照元 rzone().

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

ntesukiRecord.h の 87 行で定義されています。

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

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

各配列のサイズ.

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

ntesukiRecord.h の 40 行で定義されています。

参照元 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.h の 70 行で定義されています。

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

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

ntesukiRecord.h の 63 行で定義されています。

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

ntesukiRecord.h の 58 行で定義されています。

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

ntesukiRecord.h の 557 行で定義されています。

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

ntesukiRecord.h の 557 行で定義されています。

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

ntesukiRecord.h の 61 行で定義されています。

ntesukiRecord.h の 531 行で定義されています。

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

ntesukiRecord.h の 524 行で定義されています。

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

ntesukiRecord.h の 524 行で定義されています。

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

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

ntesukiRecord.h の 533 行で定義されています。

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

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

ntesukiRecord.h の 529 行で定義されています。

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


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