All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | Private Attributes
osl::ntesuki::NtesukiRecord Class Reference

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

#include <ntesukiRecord.h>

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

List of all members.

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)
 コンストラクタ.
 ~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)
 探索の結果を格納する
template<Player A>
const NtesukiResult getValue (int i) const
 このノードの NtesukiResult の値を調べる
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 Attributes

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 Attributes

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 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 の伝播用.
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
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

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.

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

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 
)

Definition at line 100 of file ntesukiRecord.h.


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().

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 ( ) [inline, private]

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 [inline, private]

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 ( ) [inline, private]

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 [inline, private]

Definition at line 570 of file ntesukiRecord.h.

References osl::BLACK, by_fixed_black, and by_fixed_white.

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

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 
) [inline, private]

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<osl::Player P>
const osl::ntesuki::NtesukiMove & osl::ntesuki::NtesukiRecord::getBestMove ( int  i) const

Definition at line 184 of file ntesukiRecord.cc.

References 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
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().

unsigned int osl::ntesuki::NtesukiRecord::getReadCount ( ) const [inline]

Definition at line 376 of file ntesukiRecord.h.

References read_count.

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

Definition at line 170 of file ntesukiRecord.cc.

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

Definition at line 160 of file ntesukiRecord.cc.

References osl::BLACK.

Referenced by isWin().

template<osl::Player P>
template const NtesukiResult osl::ntesuki::NtesukiRecord::getValueWithPath< WHITE > ( int  i,
const PathEncoding  path 
) const
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 ( ) [inline, private]

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 [inline, private]

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.

Definition at line 194 of file ntesukiRecord.cc.

References osl::BLACK.

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

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 [inline, private]

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]

Definition at line 203 of file ntesukiRecord.h.

References getValueSlow(), and SIZE.

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 ( ) [inline, private]

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 [inline, private]

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 ( ) [inline, private]

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 [inline, private]

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 ( ) [inline, private]

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 [inline, private]

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]

Definition at line 56 of file ntesukiRecord.tcc.

References CATCH_DFPN, ntesuki_assert, and TRY_DFPN.

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

Definition at line 17 of file ntesukiRecord.tcc.

References CATCH_DFPN, ntesuki_assert, same_board_list, and TRY_DFPN.

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

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 [inline, private]

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().

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]

Definition at line 665 of file ntesukiRecord.tcc.

References CATCH_DFPN, moves, ntesuki_assert, and TRY_DFPN.

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 
)
template<osl::Player P>
template void osl::ntesuki::NtesukiRecord::triedPropagatedOracle< WHITE > ( int  pass_left)

Definition at line 1062 of file ntesukiRecord.tcc.

手番

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 ( ) [inline, private]

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 [inline, private]

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().

Definition at line 177 of file ntesukiRecord.cc.

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

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 [inline, private]

Definition at line 602 of file ntesukiRecord.h.

References osl::BLACK, values_black, and values_white.


Member Data Documentation

Definition at line 536 of file ntesukiRecord.h.

Definition at line 525 of file ntesukiRecord.h.

Referenced by best_move().

Definition at line 525 of file ntesukiRecord.h.

Referenced by best_move().

各プレイヤの持駒

Definition at line 75 of file ntesukiRecord.h.

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

Definition at line 535 of file ntesukiRecord.h.

Referenced by by_fixed().

Definition at line 535 of file ntesukiRecord.h.

Referenced by by_fixed().

Definition at line 534 of file ntesukiRecord.h.

Referenced by isBySimulation().

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

Definition at line 529 of file ntesukiRecord.h.

Referenced by addChildCount(), and getChildCount().

合流点がいくつあるか.

Definition at line 70 of file ntesukiRecord.h.

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

Definition at line 62 of file ntesukiRecord.h.

DAG の分流点

Definition at line 541 of file ntesukiRecord.h.

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

Definition at line 546 of file ntesukiRecord.h.

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

Definition at line 537 of file ntesukiRecord.h.

探索関係の色々な情報.

Definition at line 56 of file ntesukiRecord.h.

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

Definition at line 57 of file ntesukiRecord.h.

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

Definition at line 555 of file ntesukiRecord.h.

Referenced by is_ntesuki(), and NtesukiRecord().

Definition at line 555 of file ntesukiRecord.h.

Referenced by is_ntesuki(), and NtesukiRecord().

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

Definition at line 528 of file ntesukiRecord.h.

Referenced by loop_path_list().

Definition at line 528 of file ntesukiRecord.h.

Referenced by loop_path_list().

Definition at line 60 of file ntesukiRecord.h.

Referenced by checkNewParent().

Definition at line 66 of file ntesukiRecord.h.

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

Definition at line 59 of file ntesukiRecord.h.

Definition at line 526 of file ntesukiRecord.h.

Referenced by pdpieces().

Definition at line 526 of file ntesukiRecord.h.

Referenced by pdpieces().

Definition at line 556 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and propagated_oracle().

Definition at line 556 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and propagated_oracle().

Definition at line 553 of file ntesukiRecord.h.

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

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

Definition at line 529 of file ntesukiRecord.h.

Referenced by getReadCount().

Definition at line 552 of file ntesukiRecord.h.

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

Definition at line 554 of file ntesukiRecord.h.

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

Definition at line 558 of file ntesukiRecord.h.

Referenced by rzone().

Definition at line 558 of file ntesukiRecord.h.

Referenced by rzone().

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

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().

Definition at line 67 of file ntesukiRecord.h.

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

Definition at line 557 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and use_old().

Definition at line 557 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and use_old().

Definition at line 61 of file ntesukiRecord.h.

Definition at line 531 of file ntesukiRecord.h.

Definition at line 524 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and values().

Definition at line 524 of file ntesukiRecord.h.

Referenced by NtesukiRecord(), and values().

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

Definition at line 533 of file ntesukiRecord.h.

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

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

Definition at line 529 of file ntesukiRecord.h.

Referenced by getWrittenCount().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines