クラス osl::search::MoveGenerator

#include <moveGenerator.h>

osl::search::MoveGeneratorのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 MoveGenerator ()
void init (int limit, SimpleHashRecord *record, const eval::ProgressEval &, 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 PieceMaskmyPins () const
void dump () const
void generateAll (Player P, const SearchState2 &state, category::analyzer::CategoryMoveVector &)
template<Player P>
void generateAll (const SearchState2 &, MoveLogProbVector &)
void generateAll (Player P, const SearchState2 &state, MoveLogProbVector &out)
const MoveLogProbVectorgenerated () const
template<Player P>
void quiesceCapture (const NumEffectState &, Position)

Static Public メソッド

static int captureValue (Ptype)

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
SimpleHashRecordrecord
int limit
int tried
MoveMarker marker
RatingEnv env
Progress32 progress
bool in_quiesce
bool in_pv

Static Private 変数

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


説明

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


型定義

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


列挙型

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

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


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

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

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


関数

void osl::search::MoveGenerator::init ( int  limit,
SimpleHashRecord record,
const eval::ProgressEval eval,
const NumEffectState &  state,
bool  in_pv,
Move  hash_move,
bool  quiesce = false 
)

template<Player P>
const MoveLogProb osl::search::MoveGenerator::nextTacticalMove ( const SearchState2 state  )  [inline]

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

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

killer move ʤ

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

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

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

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

参照先 tried.

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

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

参照先 env.

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

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

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

void osl::search::MoveGenerator::generateAll ( Player  P,
const SearchState2 state,
category::analyzer::CategoryMoveVector out 
)

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

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

参照先 osl::container::MoveLogProbVector::push_back().

void osl::search::MoveGenerator::generateAll ( Player  P,
const SearchState2 state,
MoveLogProbVector out 
)

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

参照先 osl::BLACK.

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

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

参照先 moves.

参照元 generateAll().

int osl::search::MoveGenerator::captureValue ( Ptype  ptype  )  [static]

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

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

template<osl::Player P>
void osl::search::MoveGenerator::quiesceCapture ( const NumEffectState &  state,
Position  to 
) [inline]

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

参照先 max_see, と moves.

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

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

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

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

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::generateBreakThreatmate ( const SearchState2 state  )  [inline, private]

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

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

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

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

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


変数

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.h67 行で定義されています。

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

const CArray< const char *, MoveGenerator::FINISH > osl::search::MoveGenerator::GeneratorNames [static, private]

初期値:

 {{
      "INITIAL", "KING_ESCAPE", "TAKEBACK", "BREAK_THREATMATE", "TACTICAL", "SENTINEL", "TESUJI", "ALL", 
    }}

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

参照元 generateAll().

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

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

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

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

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

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

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

参照元 generateAll().


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:18 2009に生成されました。  doxygen 1.5.6