クラス osl::search::MoveGenerator

#include <moveGenerator.h>

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

すべてのメンバ一覧

Public メソッド

 MoveGenerator ()
template<class EvalT >
void init (int limit, const SimpleHashRecord *record, const EvalT &, const NumEffectState &, bool in_pv, Move hash_move, bool quiesce=false)
template<Player P>
const MoveLogProb nextTacticalMove (const SearchState2 &state)
template<Player P>
const MoveLogProb nextMove (const SearchState2 &state)
void registerMove (const NumEffectState &state, Move m)
 killer move など
int triedMoves () const
const PieceMask & myPins () const
void dump () const
void generateAll (Player P, const SearchState2 &state, analyzer::CategoryMoveVector &)
template<Player P>
void generateAll (const SearchState2 &, MoveLogProbVector &)
void generateAll (Player P, const SearchState2 &state, MoveLogProbVector &out)
const MoveLogProbVector & generated () const
template<Player P>
void quiesceCapture (const NumEffectState &, Position)

Static Public メソッド

static int captureValue (Ptype)
static void initOnce ()
 call this before any use of instance of MoveGenerator

Private 型

enum  State {
  INITIAL, KING_ESCAPE, TAKE_BACK, BREAK_THREATMATE,
  CAPTURE, TACTICAL_FINISH, TESUJI, ALL,
  FINISH
}
typedef void(MoveGenerator::* generator_t )(const SearchState2 &)

Private メソッド

template<Player P>
const MoveLogProb nextMoveWithGeneration (const SearchState2 &)
template<Player P>
const MoveLogProb nextTacticalMoveWithGeneration (const SearchState2 &)
template<Player P>
void generateKingEscape (const SearchState2 &state)
template<Player P>
void generateTakeBack (const SearchState2 &state)
template<Player P>
void generateBreakThreatmate (const SearchState2 &state)
template<Player P>
void generateCapture (const SearchState2 &state)
template<Player P>
void generateTesuji (const SearchState2 &state)
template<Player P>
void generateAllExp (const SearchState2 &state)
template<Player P>
void generateAll (const SearchState2 &state)
template<Player P>
void addCapture (const NumEffectState &, const RatingEnv &, const MoveVector &)

Private 変数

MoveLogProbVector moves
int cur_state
size_t cur_index
const SimpleHashRecordrecord
int limit
int tried
MoveMarker marker
RatingEnv env
Progress32 progress
Move eval_suggestion
bool in_quiesce
bool in_pv

Static Private 変数

static const CArray2d
< generator_t, 2, FINISH > 
Generators
static const CArray< const
char *, FINISH > 
GeneratorNames

説明

moveGenerator.h53 行で定義されています。


型定義

typedef void(MoveGenerator::* osl::search::MoveGenerator::generator_t)(const SearchState2 &) [private]

moveGenerator.h59 行で定義されています。


列挙型

列挙型の値:
INITIAL 
KING_ESCAPE 
TAKE_BACK 
BREAK_THREATMATE 
CAPTURE 
TACTICAL_FINISH 
TESUJI 
ALL 
FINISH 

moveGenerator.h55 行で定義されています。


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

osl::search::MoveGenerator::MoveGenerator (  ) 

moveGenerator.cc150 行で定義されています。


関数

template<osl::Player P>
void osl::search::MoveGenerator::addCapture ( const NumEffectState &  state,
const RatingEnv &  env,
const MoveVector &  src 
) [inline, private]
int osl::search::MoveGenerator::captureValue ( Ptype  ptype  )  [static]

moveGenerator.cc155 行で定義されています。

参照先 osl::isPiece(), osl::newPtypeO(), osl::eval::Ptype_Eval_Table, result, と osl::WHITE.

void osl::search::MoveGenerator::dump (  )  const

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

参照先 cur_index, cur_state, moves, と tried.

template<osl::Player P>
void osl::search::MoveGenerator::generateAll ( const SearchState2 state  )  [inline, private]
void osl::search::MoveGenerator::generateAll ( Player  P,
const SearchState2 state,
MoveLogProbVector &  out 
)

moveGenerator.cc527 行で定義されています。

参照先 osl::BLACK.

template<osl::Player P>
void osl::search::MoveGenerator::generateAll ( const SearchState2 state,
MoveLogProbVector &  out 
) [inline]

moveGenerator.cc509 行で定義されています。

参照先 osl::search::SearchState2Core::state().

void osl::search::MoveGenerator::generateAll ( Player  P,
const SearchState2 state,
analyzer::CategoryMoveVector out 
)
template<Player P>
void osl::search::MoveGenerator::generateAllExp ( const SearchState2 state  )  [inline, private]
template<osl::Player P>
void osl::search::MoveGenerator::generateBreakThreatmate ( const SearchState2 state  )  [inline, private]
template<osl::Player P>
void osl::search::MoveGenerator::generateCapture ( const SearchState2 state  )  [inline, private]

moveGenerator.cc380 行で定義されています。

参照先 env, と osl::search::SearchState2Core::state().

const MoveLogProbVector& osl::search::MoveGenerator::generated (  )  const [inline]

moveGenerator.h125 行で定義されています。

参照先 moves.

参照元 generateAll().

template<osl::Player P>
void osl::search::MoveGenerator::generateKingEscape ( const SearchState2 state  )  [inline, private]
template<osl::Player P>
void osl::search::MoveGenerator::generateTakeBack ( const SearchState2 state  )  [inline, private]
template<osl::Player P>
void osl::search::MoveGenerator::generateTesuji ( const SearchState2 state  )  [inline, private]
template<class EvalT >
void osl::search::MoveGenerator::init ( int  limit,
const SimpleHashRecord record,
const EvalT &  eval,
const NumEffectState &  state,
bool  in_pv,
Move  hash_move,
bool  quiesce = false 
) [inline]
void osl::search::MoveGenerator::initOnce (  )  [static]

call this before any use of instance of MoveGenerator

moveGenerator.cc43 行で定義されています。

参照先 osl::rating::StandardFeatureSet::instance().

参照元 osl::search::AlphaBeta2< EvalT >::AlphaBeta2().

const PieceMask& osl::search::MoveGenerator::myPins (  )  const [inline]

moveGenerator.h115 行で定義されています。

参照先 env.

template<Player P>
const MoveLogProb osl::search::MoveGenerator::nextMove ( const SearchState2 state  )  [inline]
template<osl::Player P>
template const MoveLogProb osl::search::MoveGenerator::nextMoveWithGeneration< WHITE > ( const SearchState2  )  [inline, private]

moveGenerator.cc231 行で定義されています。

参照先 cur_index, cur_state, FINISH, Generators, moves, osl::playerToIndex(), record, と tried.

template<Player P>
const MoveLogProb osl::search::MoveGenerator::nextTacticalMove ( const SearchState2 state  )  [inline]
template<osl::Player P>
template const MoveLogProb osl::search::MoveGenerator::nextTacticalMoveWithGeneration< WHITE > ( const SearchState2  )  [inline, private]
template<osl::Player P>
void osl::search::MoveGenerator::quiesceCapture ( const NumEffectState &  state,
Position  to 
) [inline]

moveGenerator.cc424 行で定義されています。

参照先 osl::move_generator::capture::generate(), max_see, と moves.

void osl::search::MoveGenerator::registerMove ( const NumEffectState &  state,
Move  m 
) [inline]

killer move など

moveGenerator.h106 行で定義されています。

参照先 osl::Move::isNormal(), marker, osl::search::MoveMarker::registerMove(), と tried.

int osl::search::MoveGenerator::triedMoves (  )  const [inline]

moveGenerator.h114 行で定義されています。

参照先 tried.


変数

RatingEnv osl::search::MoveGenerator::env [private]

moveGenerator.h71 行で定義されています。

参照元 generateTesuji(), と init().

const CArray< const char *, MoveGenerator::FINISH > osl::search::MoveGenerator::GeneratorNames [static, private]
初期値:
 {{
      "INITIAL", "KING_ESCAPE", "TAKEBACK", "BREAK_THREATMATE", "TACTICAL", "SENTINEL", "TESUJI", "ALL", 
    }}

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

参照元 generateAll().

const CArray2d< MoveGenerator::generator_t, 2, MoveGenerator::FINISH > osl::search::MoveGenerator::Generators [static, private]
初期値:
 {{
      {
        0,
        &MoveGenerator::generateKingEscape<BLACK>,
        &MoveGenerator::generateTakeBack<BLACK>,
        &MoveGenerator::generateBreakThreatmate<BLACK>,
        &MoveGenerator::generateCapture<BLACK>,
        0,
        &MoveGenerator::generateTesuji<BLACK>,
        &MoveGenerator::generateAll<BLACK>,
      },
      {
        0,
        &MoveGenerator::generateKingEscape<WHITE>,
        &MoveGenerator::generateTakeBack<WHITE>,
        &MoveGenerator::generateBreakThreatmate<WHITE>,
        &MoveGenerator::generateCapture<WHITE>,
        0,
        &MoveGenerator::generateTesuji<WHITE>,
        &MoveGenerator::generateAll<WHITE>,
      }
    }}

moveGenerator.h60 行で定義されています。

参照元 generateAll(), nextMoveWithGeneration(), と nextTacticalMoveWithGeneration().

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

参照元 generateAll().

moveGenerator.h73 行で定義されています。

参照元 addCapture(), generateAll(), generateTakeBack(), generateTesuji(), と init().

moveGenerator.h66 行で定義されています。

MoveLogProbVector osl::search::MoveGenerator::moves [private]

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

参照元 init().


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