All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
osl::ntesuki::NtesukiRecord Class Reference

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

#include <ntesukiRecord.h>

Collaboration diagram for osl::ntesuki::NtesukiRecord:
Collaboration graph
[legend]

Classes

class  UnVisitLock
 
class  VisitLock
 

Public Types

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 Member Functions

 NtesukiRecord (signed short distance, const HashKey &key, const PieceStand &white_stand, RecordList *same_board_list)
 コンストラクタ. More...
 
 ~NtesukiRecord ()
 
Player turn () const
 手番 More...
 
bool isBySimulation () const
 simulation によって値が決まったか More...
 
template<Player P>
const PieceStandgetPieceStand () const
 この局面でのプレイヤの持駒. More...
 
const PieceStandgetPieceStandSlow (Player P) const
 
template<Player A>
PieceStand calcProofPiecesOr (int pass_left, const NtesukiMove &m)
 証明駒を計算する. More...
 
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)
 証明駒を設定する. More...
 
template<osl::Player A>
void setDisproofPieces (int pass_left, const NtesukiResult &r, const NtesukiMove &m, const PieceStand *ps)
 反証駒を設定する. More...
 
template<Player A>
void setResult (int i, const NtesukiResult &r, const NtesukiMove &m, bool bs, const PieceStand *ps=NULL)
 探索の結果を格納する More...
 
template<Player A>
const NtesukiResult getValue (int i) const
 このノードの NtesukiResult の値を調べる More...
 
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
 登録されてる最善手を返す. More...
 
const NtesukiMovegetBestMoveSlow (Player attacker, int i) const
 
bool isVisited () const
 Loop になっているかチェック. More...
 
bool isFinal ()
 
void setVisited ()
 
void resetVisited ()
 
template<Player A>
bool isByFixed () const
 Fixed Depth Searcher によって値が設定されたか. More...
 
bool isByFixedSlow (Player attacker) const
 
template<Player A>
bool isNtesuki (int pass_left) const
 このノードが n手すきになっているか. More...
 
template<Player A>
void setNtesuki (int pass_left)
 
template<Player A>
bool hasTriedPropagatedOracle (int pass_left) const
 このノードで親から来た oracle を試したか More...
 
template<Player A>
void triedPropagatedOracle (int pass_left)
 
template<Player A>
PieceStand getPDPieces (int pass_left) const
 証明駒を得る More...
 
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
 無駄合いを読むべきか. More...
 
void setReadInterpose (int pass_left)
 
bool readCheckDefense (int pass_left) const
 defense の際に王手を読むべきか. More...
 
void setReadCheckDefense (int pass_left)
 
bool readNonAttack (int pass_left) const
 attack の際に,ヒューリスティックに判別された攻撃手以外も読むか. More...
 
void setReadNonAttack (int pass_left)
 
template<Player A>
bool useOld (int pass_left) const
 old child を読むべきか. More...
 
template<Player A>
void setUseOld (int pass_left, bool value)
 
template<Player A>
bool isLoopWithPath (int pass_left, const PathEncoding &path) const
 この path で loop になるか. More...
 
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 を呼ぶ等. More...
 
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)
 手の生成. More...
 
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)
 
template<osl::Player P>
osl::PieceStand calcProofPiecesOr (int pass_left, const osl::ntesuki::NtesukiMove &move)
 
template<osl::Player P>
osl::PieceStand calcProofPiecesAnd (int pass_left)
 
template<osl::Player P>
const osl::ntesuki::NtesukiResult getValue (int i) const
 
template<osl::Player P>
const osl::ntesuki::NtesukiResult getValueWithPath (int i, const PathEncoding path) const
 
template<osl::Player P>
const osl::ntesuki::NtesukiResult getValueOr (int max_pass_left, const PathEncoding path, IWScheme iwscheme) const
 
template<osl::Player P>
const osl::ntesuki::NtesukiResult getValueAnd (int max_pass_left, const PathEncoding path, IWScheme iwscheme, PSScheme psscheme) const
 
template<osl::Player P>
const osl::ntesuki::NtesukiMovegetBestMove (int i) const
 
template<osl::Player P>
osl::PieceStand getPDPieces (int pass_left) const
 

Public Attributes

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

Static Public Attributes

static const unsigned int SIZE = 2
 各配列のサイズ. More...
 
static unsigned int fixed_search_depth = 0
 探索関係の色々な情報. More...
 
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
 分流点がいくつあるか. More...
 
static unsigned int confluence_count = 0
 合流点がいくつあるか. More...
 

Private Types

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 Member Functions

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 の伝播用. More...
 
template<Player P>
void propagate_proof (int pass_left)
 
template<Player P>
void propagate_disproof (int pass_left)
 

Private Attributes

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 More...
 
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 More...
 
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
 

Detailed Description

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

Definition at line 32 of file ntesukiRecord.h.

Member Typedef Documentation

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

Definition at line 521 of file ntesukiRecord.h.

Definition at line 518 of file ntesukiRecord.h.

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

Definition at line 519 of file ntesukiRecord.h.

Definition at line 520 of file ntesukiRecord.h.

Definition at line 522 of file ntesukiRecord.h.

Definition at line 35 of file ntesukiRecord.h.

Definition at line 36 of file ntesukiRecord.h.

Definition at line 523 of file ntesukiRecord.h.

Definition at line 517 of file ntesukiRecord.h.

Member Enumeration Documentation

Enumerator
no_is 
tonshi_is 
delay_is 
normal_is 

Definition at line 48 of file ntesukiRecord.h.

Enumerator
no_iw 
strict_iw 
pn_iw 

Definition at line 41 of file ntesukiRecord.h.

Enumerator
no_ps 
pn_ps 

Definition at line 45 of file ntesukiRecord.h.

Constructor & Destructor Documentation

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

Definition at line 100 of file ntesukiRecord.h.

osl::ntesuki::NtesukiRecord::NtesukiRecord ( )
private

Member Function Documentation

void osl::ntesuki::NtesukiRecord::addChildCount ( unsigned int  i)
inline

Definition at line 371 of file ntesukiRecord.h.

References child_count.

Referenced by osl::ntesuki::NtesukiTable::Table::collectGarbage().

void osl::ntesuki::NtesukiRecord::addNewParent ( NtesukiRecord p)
inlineprivate

Definition at line 485 of file ntesukiRecord.h.

References isNewParent(), ntesuki_assert, parents, and rev_refcount.

Referenced by checkNewParent().

template<Player P>
moves_t& osl::ntesuki::NtesukiRecord::best_move ( )
inlineprivate

Definition at line 610 of file ntesukiRecord.h.

References best_move_black, best_move_white, and osl::BLACK.

template<Player P>
const moves_t& osl::ntesuki::NtesukiRecord::best_move ( ) const
inlineprivate

Definition at line 618 of file ntesukiRecord.h.

References best_move_black, best_move_white, and osl::BLACK.

template<Player P>
bool& osl::ntesuki::NtesukiRecord::by_fixed ( )
inlineprivate

Definition at line 562 of file ntesukiRecord.h.

References osl::BLACK, by_fixed_black, and by_fixed_white.

template<Player P>
const bool& osl::ntesuki::NtesukiRecord::by_fixed ( ) const
inlineprivate

Definition at line 570 of file ntesukiRecord.h.

References osl::BLACK, by_fixed_black, and by_fixed_white.

template<Player A>
PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesAnd ( int  pass_left)
template<osl::Player P>
osl::PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesAnd ( int  pass_left)
template<Player A>
PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesOr ( int  pass_left,
const NtesukiMove m 
)

証明駒を計算する.

  • A 攻撃側のプレイヤ
template<osl::Player P>
osl::PieceStand osl::ntesuki::NtesukiRecord::calcProofPiecesOr ( int  pass_left,
const osl::ntesuki::NtesukiMove move 
)
void osl::ntesuki::NtesukiRecord::checkNewParent ( NtesukiRecord p)
inline
void osl::ntesuki::NtesukiRecord::find_split ( NtesukiRecord rhs,
RecordPList lvisited,
RecordPList rvisited 
)
inlineprivate

Definition at line 398 of file ntesukiRecord.h.

References osl::find(), find_split_right(), and parents.

Referenced by checkNewParent().

bool osl::ntesuki::NtesukiRecord::find_split_right ( NtesukiRecord rhs,
RecordPList lvisited,
RecordPList rvisited 
)
inlineprivate

Definition at line 438 of file ntesukiRecord.h.

References osl::find(), is_split, parents, result, and split_count.

Referenced by find_split().

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

Definition at line 1029 of file ntesukiRecord.tcc.

const osl::ntesuki::NtesukiMove & osl::ntesuki::NtesukiRecord::getBestMoveSlow ( Player  attacker,
int  i 
) const

Definition at line 184 of file ntesukiRecord.cc.

References osl::BLACK.

unsigned int osl::ntesuki::NtesukiRecord::getChildCount ( ) const
inline
template<Player A>
template PieceStand osl::ntesuki::NtesukiRecord::getPDPieces< WHITE > ( int  pass_left) const
template<osl::Player P>
osl::PieceStand osl::ntesuki::NtesukiRecord::getPDPieces ( int  pass_left) const

Definition at line 1079 of file ntesukiRecord.tcc.

osl::PieceStand osl::ntesuki::NtesukiRecord::getPDPiecesSlow ( Player  attacker,
int  pass_left 
) const

Definition at line 204 of file ntesukiRecord.cc.

References osl::BLACK.

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

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

  • P プレイヤ

Definition at line 121 of file ntesukiRecord.h.

Referenced by osl::ntesuki::OracleProverLight::startFromAttack(), and osl::ntesuki::OracleProverLight::startFromDefense().

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

Definition at line 376 of file ntesukiRecord.h.

References read_count.

template<Player A>
const NtesukiResult osl::ntesuki::NtesukiRecord::getValue ( int  i) const
template<osl::Player P>
const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::getValue ( int  i) const

Definition at line 925 of file ntesukiRecord.tcc.

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

Definition at line 170 of file ntesukiRecord.cc.

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

Definition at line 160 of file ntesukiRecord.cc.

References osl::BLACK.

Referenced by isWin().

template<Player A>
template const NtesukiResult osl::ntesuki::NtesukiRecord::getValueWithPath< WHITE > ( int  i,
const PathEncoding  path 
) const
template<osl::Player P>
const osl::ntesuki::NtesukiResult osl::ntesuki::NtesukiRecord::getValueWithPath ( int  i,
const PathEncoding  path 
) const

Definition at line 934 of file ntesukiRecord.tcc.

References osl::checkmate::ProofDisproof::LoopDetection().

unsigned int osl::ntesuki::NtesukiRecord::getWrittenCount ( ) const
inline

Definition at line 381 of file ntesukiRecord.h.

References written_count.

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

Definition at line 327 of file ntesukiRecord.h.

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

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

Definition at line 1054 of file ntesukiRecord.tcc.

template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::is_ntesuki ( )
inlineprivate

Definition at line 642 of file ntesukiRecord.h.

References osl::BLACK, is_ntesuki_black, and is_ntesuki_white.

template<Player P>
const flags_t& osl::ntesuki::NtesukiRecord::is_ntesuki ( ) const
inlineprivate

Definition at line 650 of file ntesukiRecord.h.

References osl::BLACK, is_ntesuki_black, and is_ntesuki_white.

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

Definition at line 867 of file ntesukiRecord.tcc.

References osl::PieceStand::hasMoreThan(), and key.

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

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

Definition at line 1071 of file ntesukiRecord.tcc.

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

Definition at line 194 of file ntesukiRecord.cc.

References osl::BLACK.

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

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

Definition at line 111 of file ntesukiRecord.h.

References by_simulation.

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

Definition at line 227 of file ntesukiRecord.h.

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

この path で loop になるか.

Definition at line 897 of file ntesukiRecord.tcc.

Referenced by osl::ntesuki::NtesukiSearcher::defenseWithPlayer(), and osl::ntesuki::NtesukiSearcher::selectMoveDefense().

bool osl::ntesuki::NtesukiRecord::isNewParent ( const NtesukiRecord p) const
inlineprivate

Definition at line 388 of file ntesukiRecord.h.

References parents.

Referenced by addNewParent(), and checkNewParent().

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

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

Definition at line 1037 of file ntesukiRecord.tcc.

bool osl::ntesuki::NtesukiRecord::isVisited ( ) const
inline
int osl::ntesuki::NtesukiRecord::isWin ( const Player  attacker) const
inline
void osl::ntesuki::NtesukiRecord::lookup_same_board_list ( )
private

Dominace の伝播用.

Definition at line 101 of file ntesukiRecord.cc.

References osl::BLACK, CATCH_DFPN, TRY_DFPN, and osl::WHITE.

Referenced by NtesukiRecord().

template<Player P>
pell_t& osl::ntesuki::NtesukiRecord::loop_path_list ( )
inlineprivate

Definition at line 690 of file ntesukiRecord.h.

References osl::BLACK, loop_path_list_black, and loop_path_list_white.

template<Player P>
const pell_t& osl::ntesuki::NtesukiRecord::loop_path_list ( ) const
inlineprivate

Definition at line 698 of file ntesukiRecord.h.

References osl::BLACK, loop_path_list_black, and loop_path_list_white.

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

Definition at line 360 of file ntesukiRecord.h.

References key.

template<Player P>
pdpieces_t& osl::ntesuki::NtesukiRecord::pdpieces ( )
inlineprivate

Definition at line 626 of file ntesukiRecord.h.

References osl::BLACK, pd_pieces_black, and pd_pieces_white.

template<Player P>
const pdpieces_t& osl::ntesuki::NtesukiRecord::pdpieces ( ) const
inlineprivate

Definition at line 634 of file ntesukiRecord.h.

References osl::BLACK, pd_pieces_black, and pd_pieces_white.

template<Player P>
PieceStand& osl::ntesuki::NtesukiRecord::piece_stand ( )
inlineprivate

Definition at line 578 of file ntesukiRecord.h.

References osl::BLACK, black_stand, and white_stand.

template<Player P>
const PieceStand& osl::ntesuki::NtesukiRecord::piece_stand ( ) const
inlineprivate

Definition at line 586 of file ntesukiRecord.h.

References osl::BLACK, black_stand, and white_stand.

template<osl::Player P>
void osl::ntesuki::NtesukiRecord::propagate_disproof ( int  pass_left)
private
template<osl::Player P>
void osl::ntesuki::NtesukiRecord::propagate_proof ( int  pass_left)
private
template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::propagated_oracle ( )
inlineprivate

Definition at line 658 of file ntesukiRecord.h.

References osl::BLACK, propagated_oracle_black, and propagated_oracle_white.

template<Player P>
const flags_t osl::ntesuki::NtesukiRecord::propagated_oracle ( ) const
inlineprivate

Definition at line 666 of file ntesukiRecord.h.

References osl::BLACK, propagated_oracle_black, and propagated_oracle_white.

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

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

Definition at line 282 of file ntesukiRecord.h.

References read_check_defense.

Referenced by osl::ntesuki::NtesukiSearcher::selectMoveDefense().

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

無駄合いを読むべきか.

Definition at line 269 of file ntesukiRecord.h.

References read_interpose.

Referenced by osl::ntesuki::NtesukiSearcher::selectMoveDefense().

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

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

Definition at line 295 of file ntesukiRecord.h.

References read_non_attack.

Referenced by 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 
)
template<osl::Player P>
void osl::ntesuki::NtesukiRecord::setFinal ( int  i,
const NtesukiResult r,
const NtesukiMove m,
const PieceStand ps 
)
private
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setLoopWithPath< WHITE > ( int  pass_left,
const PathEncoding path 
)
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setNtesuki< WHITE > ( int  pass_left)
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::setPDPieces< WHITE > ( int  pass_left,
const PieceStand  p 
)

Definition at line 1087 of file ntesukiRecord.tcc.

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

証明駒を設定する.

  • A 攻撃側のプレイヤ

Definition at line 520 of file ntesukiRecord.tcc.

References osl::D, getPDPieces(), osl::ntesuki::NtesukiMove::isPass(), osl::ntesuki::NtesukiMove::isValid(), and ntesuki_assert.

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

Definition at line 287 of file ntesukiRecord.h.

References read_check_defense.

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

Definition at line 274 of file ntesukiRecord.h.

References read_interpose.

Referenced by osl::ntesuki::NtesukiSearcher::selectMoveDefense().

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

Definition at line 300 of file ntesukiRecord.h.

References read_non_attack.

Referenced by 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 
)
template<osl::Player T>
void osl::ntesuki::NtesukiRecord::setUpAttackNode ( )
template<osl::Player T>
void osl::ntesuki::NtesukiRecord::setUpDefenseNode ( )
template<osl::Player T>
template bool osl::ntesuki::NtesukiRecord::setUpNode< WHITE > ( )
template<osl::Player A>
template void osl::ntesuki::NtesukiRecord::setUseOld< WHITE > ( int  pass_left,
bool  value 
)
void osl::ntesuki::NtesukiRecord::setVisited ( )
inline
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::triedPropagatedOracle< WHITE > ( int  pass_left)

Definition at line 1062 of file ntesukiRecord.tcc.

Player osl::ntesuki::NtesukiRecord::turn ( ) const
inline

手番

Definition at line 105 of file ntesukiRecord.h.

References key.

Referenced by osl::ntesuki::NtesukiMoveGenerator::generateWithRzone().

void osl::ntesuki::NtesukiRecord::updateWithChild ( NtesukiRecord child,
int  pass_left 
)

Definition at line 90 of file ntesukiRecord.cc.

References osl::BLACK, rzone(), update(), and osl::WHITE.

template<Player P>
flags_t& osl::ntesuki::NtesukiRecord::use_old ( )
inlineprivate

Definition at line 674 of file ntesukiRecord.h.

References osl::BLACK, use_old_black, and use_old_white.

template<Player P>
const flags_t osl::ntesuki::NtesukiRecord::use_old ( ) const
inlineprivate

Definition at line 682 of file ntesukiRecord.h.

References osl::BLACK, use_old_black, and use_old_white.

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

old child を読むべきか.

Definition at line 881 of file ntesukiRecord.tcc.

Referenced by osl::ntesuki::NtesukiSearcher::selectMoveAttack(), and osl::ntesuki::NtesukiSearcher::selectMoveDefense().

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

Definition at line 177 of file ntesukiRecord.cc.

template<Player P>
values_t& osl::ntesuki::NtesukiRecord::values ( )
inlineprivate

Definition at line 594 of file ntesukiRecord.h.

References osl::BLACK, values_black, and values_white.

template<Player P>
const values_t& osl::ntesuki::NtesukiRecord::values ( ) const
inlineprivate

Definition at line 602 of file ntesukiRecord.h.

References osl::BLACK, values_black, and values_white.

Member Data Documentation

bool osl::ntesuki::NtesukiRecord::already_set_up
private

Definition at line 536 of file ntesukiRecord.h.

moves_t osl::ntesuki::NtesukiRecord::best_move_black
private

Definition at line 525 of file ntesukiRecord.h.

Referenced by best_move().

moves_t osl::ntesuki::NtesukiRecord::best_move_white
private

Definition at line 525 of file ntesukiRecord.h.

Referenced by best_move().

PieceStand osl::ntesuki::NtesukiRecord::black_stand

各プレイヤの持駒

Definition at line 75 of file ntesukiRecord.h.

Referenced by osl::ntesuki::operator<<(), and piece_stand().

bool osl::ntesuki::NtesukiRecord::by_fixed_black
private

Definition at line 535 of file ntesukiRecord.h.

Referenced by by_fixed().

bool osl::ntesuki::NtesukiRecord::by_fixed_white
private

Definition at line 535 of file ntesukiRecord.h.

Referenced by by_fixed().

bool osl::ntesuki::NtesukiRecord::by_simulation
private

Definition at line 534 of file ntesukiRecord.h.

Referenced by isBySimulation().

unsigned int osl::ntesuki::NtesukiRecord::child_count
mutableprivate

Definition at line 529 of file ntesukiRecord.h.

Referenced by addChildCount(), and getChildCount().

unsigned int osl::ntesuki::NtesukiRecord::confluence_count = 0
static

合流点がいくつあるか.

Definition at line 70 of file ntesukiRecord.h.

Referenced by checkNewParent(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), and osl::ntesuki::NtesukiSearcher::~NtesukiSearcher().

bool osl::ntesuki::NtesukiRecord::delay_lame_long = false
static

Definition at line 62 of file ntesukiRecord.h.

unsigned short osl::ntesuki::NtesukiRecord::distance
bool osl::ntesuki::NtesukiRecord::do_oracle_attack

DAG の分流点

Definition at line 541 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::defenseWithPlayer().

bool osl::ntesuki::NtesukiRecord::do_oracle_aunt

Definition at line 546 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::defenseWithPlayer().

bool osl::ntesuki::NtesukiRecord::final
private

Definition at line 537 of file ntesukiRecord.h.

unsigned int osl::ntesuki::NtesukiRecord::fixed_search_depth = 0
static

探索関係の色々な情報.

Definition at line 56 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

unsigned int osl::ntesuki::NtesukiRecord::inversion_cost = 0
static

Definition at line 57 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

flags_t osl::ntesuki::NtesukiRecord::is_ntesuki_black
private

Definition at line 555 of file ntesukiRecord.h.

Referenced by is_ntesuki(), and NtesukiRecord().

flags_t osl::ntesuki::NtesukiRecord::is_ntesuki_white
private

Definition at line 555 of file ntesukiRecord.h.

Referenced by is_ntesuki(), and NtesukiRecord().

bool osl::ntesuki::NtesukiRecord::is_split
HashKey osl::ntesuki::NtesukiRecord::key
pell_t osl::ntesuki::NtesukiRecord::loop_path_list_black
private

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

Definition at line 528 of file ntesukiRecord.h.

Referenced by loop_path_list().

pell_t osl::ntesuki::NtesukiRecord::loop_path_list_white
private

Definition at line 528 of file ntesukiRecord.h.

Referenced by loop_path_list().

bool osl::ntesuki::NtesukiRecord::max_for_split = false
static

Definition at line 60 of file ntesukiRecord.h.

Referenced by checkNewParent().

osl::ntesuki::NtesukiMoveGenerator * osl::ntesuki::NtesukiRecord::mg = NULL
static

Definition at line 66 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

RecordPList osl::ntesuki::NtesukiRecord::parents
int osl::ntesuki::NtesukiRecord::pass_count = 0
static

Definition at line 59 of file ntesukiRecord.h.

pdpieces_t osl::ntesuki::NtesukiRecord::pd_pieces_black
private

Definition at line 526 of file ntesukiRecord.h.

Referenced by pdpieces().

pdpieces_t osl::ntesuki::NtesukiRecord::pd_pieces_white
private

Definition at line 526 of file ntesukiRecord.h.

Referenced by pdpieces().

flags_t osl::ntesuki::NtesukiRecord::propagated_oracle_black
private

Definition at line 556 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and propagated_oracle().

flags_t osl::ntesuki::NtesukiRecord::propagated_oracle_white
private

Definition at line 556 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and propagated_oracle().

flags_t osl::ntesuki::NtesukiRecord::read_check_defense
private

Definition at line 553 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), readCheckDefense(), and setReadCheckDefense().

unsigned int osl::ntesuki::NtesukiRecord::read_count
mutableprivate

Definition at line 529 of file ntesukiRecord.h.

Referenced by getReadCount().

flags_t osl::ntesuki::NtesukiRecord::read_interpose
private

Definition at line 552 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), readInterpose(), and setReadInterpose().

flags_t osl::ntesuki::NtesukiRecord::read_non_attack
private

Definition at line 554 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), readNonAttack(), and setReadNonAttack().

int osl::ntesuki::NtesukiRecord::rev_refcount
rzones_t osl::ntesuki::NtesukiRecord::rzone_black
private

Definition at line 558 of file ntesukiRecord.h.

Referenced by rzone().

bool osl::ntesuki::NtesukiRecord::rzone_move_generation
rzones_t osl::ntesuki::NtesukiRecord::rzone_white
private

Definition at line 558 of file ntesukiRecord.h.

Referenced by rzone().

RecordList* osl::ntesuki::NtesukiRecord::same_board_list

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

Definition at line 87 of file ntesukiRecord.h.

Referenced by propagate_proof().

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

各配列のサイズ.

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

Definition at line 40 of file ntesukiRecord.h.

Referenced by isWin(), osl::ntesuki::NtesukiSearcher::NtesukiSearcher(), and osl::ntesuki::operator<<().

unsigned int osl::ntesuki::NtesukiRecord::split_count = 0
static
osl::NumEffectState * osl::ntesuki::NtesukiRecord::state = NULL
static

Definition at line 65 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

osl::ntesuki::NtesukiTable * osl::ntesuki::NtesukiRecord::table = NULL
static

Definition at line 67 of file ntesukiRecord.h.

Referenced by osl::ntesuki::NtesukiSearcher::NtesukiSearcher().

bool osl::ntesuki::NtesukiRecord::use_9rzone = false
static
bool osl::ntesuki::NtesukiRecord::use_dominance = false
static
flags_t osl::ntesuki::NtesukiRecord::use_old_black
private

Definition at line 557 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and use_old().

flags_t osl::ntesuki::NtesukiRecord::use_old_white
private

Definition at line 557 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and use_old().

bool osl::ntesuki::NtesukiRecord::use_rzone_move_generation = false
static

Definition at line 61 of file ntesukiRecord.h.

NtesukiResult osl::ntesuki::NtesukiRecord::value_before_final
private

Definition at line 531 of file ntesukiRecord.h.

values_t osl::ntesuki::NtesukiRecord::values_black
private

Definition at line 524 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and values().

values_t osl::ntesuki::NtesukiRecord::values_white
private

Definition at line 524 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and values().

bool osl::ntesuki::NtesukiRecord::visited
private

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

Definition at line 533 of file ntesukiRecord.h.

Referenced by isVisited(), resetVisited(), and setVisited().

PieceStand osl::ntesuki::NtesukiRecord::white_stand
unsigned int osl::ntesuki::NtesukiRecord::written_count
mutableprivate

Definition at line 529 of file ntesukiRecord.h.

Referenced by getWrittenCount().


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