#include <moveGenerator.h>

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 SimpleHashRecord * | record |
| 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.h の 53 行で定義されています。
typedef void(MoveGenerator::* osl::search::MoveGenerator::generator_t)(const SearchState2 &) [private] |
moveGenerator.h の 59 行で定義されています。
enum osl::search::MoveGenerator::State [private] |
moveGenerator.h の 55 行で定義されています。
| osl::search::MoveGenerator::MoveGenerator | ( | ) |
moveGenerator.cc の 150 行で定義されています。
| 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.cc の 155 行で定義されています。
参照先 osl::isPiece(), osl::newPtypeO(), osl::eval::Ptype_Eval_Table, result, と osl::WHITE.
| void osl::search::MoveGenerator::dump | ( | ) | const |
| void osl::search::MoveGenerator::generateAll | ( | const SearchState2 & | state | ) | [inline, private] |
moveGenerator.cc の 442 行で定義されています。
参照先 osl::alt(), osl::Move::capturePtype(), env, feature_set(), osl::Move::from(), osl::rating::FeatureSet::generateLogProb(), osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), in_pv, in_quiesce, osl::Move::isDrop(), osl::Move::isPromote(), osl::KING, marker, osl::eval::min(), moves, osl::Move::ptype(), osl::PTYPE_EMPTY, osl::search::MoveMarker::registerIfNew(), osl::search::SearchState2Core::state(), と osl::Move::to().
| void osl::search::MoveGenerator::generateAll | ( | Player | P, | |
| const SearchState2 & | state, | |||
| MoveLogProbVector & | out | |||
| ) |
moveGenerator.cc の 527 行で定義されています。
参照先 osl::BLACK.
| void osl::search::MoveGenerator::generateAll | ( | const SearchState2 & | state, | |
| MoveLogProbVector & | out | |||
| ) | [inline] |
moveGenerator.cc の 509 行で定義されています。
| void osl::search::MoveGenerator::generateAll | ( | Player | P, | |
| const SearchState2 & | state, | |||
| analyzer::CategoryMoveVector & | out | |||
| ) |
moveGenerator.cc の 484 行で定義されています。
参照先 FINISH, generated(), GeneratorNames, Generators, KING_ESCAPE, moves, と osl::playerToIndex().
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot().
| void osl::search::MoveGenerator::generateAllExp | ( | const SearchState2 & | state | ) | [inline, private] |
| void osl::search::MoveGenerator::generateBreakThreatmate | ( | const SearchState2 & | state | ) | [inline, private] |
moveGenerator.cc の 280 行で定義されています。
参照先 osl::move_generator::capture::generate(), osl::MoveLogProb::getMove(), osl::Move::isNormal(), marker, moves, record, osl::search::MoveMarker::registerMove(), osl::search::SearchState2Core::state(), osl::search::SimpleHashRecord::threatmate(), と osl::search::DualThreatmateState::threatmateMove().
| void osl::search::MoveGenerator::generateCapture | ( | const SearchState2 & | state | ) | [inline, private] |
moveGenerator.cc の 380 行で定義されています。
| const MoveLogProbVector& osl::search::MoveGenerator::generated | ( | ) | const [inline] |
| void osl::search::MoveGenerator::generateKingEscape | ( | const SearchState2 & | state | ) | [inline, private] |
| void osl::search::MoveGenerator::generateTakeBack | ( | const SearchState2 & | state | ) | [inline, private] |
moveGenerator.cc の 293 行で定義されています。
参照先 env, feature_set(), osl::Move::from(), osl::move_generator::capture::generate(), in_quiesce, osl::Move::isDrop(), osl::Move::isNormal(), osl::KING, osl::search::SearchState2Core::lastMove(), osl::rating::FeatureSet::logProbTakeBack(), marker, osl::eval::min(), moves, osl::Move::ptype(), osl::search::MoveMarker::registerIfNew(), osl::search::SearchState2Core::state(), と osl::Move::to().
| void osl::search::MoveGenerator::generateTesuji | ( | const SearchState2 & | state | ) | [inline, private] |
| 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] |
moveGenerator.cc の 167 行で定義されています。
参照先 osl::alt(), osl::search::MoveMarker::clear(), cur_index, cur_state, env, eval_suggestion, in_quiesce, INITIAL, osl::Move::isNormal(), marker, moves, progress, record, osl::search::MoveMarker::registerMove(), と tried.
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2Tree< EvalT >::nextMove(), osl::search::AlphaBeta2Tree< EvalT >::quiesce(), と osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot().
| void osl::search::MoveGenerator::initOnce | ( | ) | [static] |
call this before any use of instance of MoveGenerator
moveGenerator.cc の 43 行で定義されています。
| const PieceMask& osl::search::MoveGenerator::myPins | ( | ) | const [inline] |
moveGenerator.h の 115 行で定義されています。
参照先 env.
| const MoveLogProb osl::search::MoveGenerator::nextMove | ( | const SearchState2 & | state | ) | [inline] |
| template const MoveLogProb osl::search::MoveGenerator::nextMoveWithGeneration< WHITE > | ( | const SearchState2 & | ) | [inline, private] |
moveGenerator.cc の 231 行で定義されています。
参照先 cur_index, cur_state, FINISH, Generators, moves, osl::playerToIndex(), record, と tried.
| const MoveLogProb osl::search::MoveGenerator::nextTacticalMove | ( | const SearchState2 & | state | ) | [inline] |
| P | turn |
moveGenerator.h の 83 行で定義されています。
参照先 cur_index, cur_state, moves, TACTICAL_FINISH, と tried.
参照元 osl::search::AlphaBeta2Tree< EvalT >::nextMove(), osl::search::AlphaBeta2Tree< EvalT >::quiesce(), と osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot().
| template const MoveLogProb osl::search::MoveGenerator::nextTacticalMoveWithGeneration< WHITE > | ( | const SearchState2 & | ) | [inline, private] |
moveGenerator.cc の 207 行で定義されています。
参照先 cur_index, cur_state, FINISH, Generators, osl::search::SimpleHashRecord::inCheck(), KING_ESCAPE, moves, osl::playerToIndex(), record, TACTICAL_FINISH, と tried.
| void osl::search::MoveGenerator::quiesceCapture | ( | const NumEffectState & | state, | |
| Position | to | |||
| ) | [inline] |
moveGenerator.cc の 424 行で定義されています。
参照先 osl::move_generator::capture::generate(), max_see, と moves.
| void osl::search::MoveGenerator::registerMove | ( | const NumEffectState & | state, | |
| Move | m | |||
| ) | [inline] |
killer move など
moveGenerator.h の 106 行で定義されています。
参照先 osl::Move::isNormal(), marker, osl::search::MoveMarker::registerMove(), と tried.
| int osl::search::MoveGenerator::triedMoves | ( | ) | const [inline] |
moveGenerator.h の 114 行で定義されています。
参照先 tried.
size_t osl::search::MoveGenerator::cur_index [private] |
moveGenerator.h の 64 行で定義されています。
参照元 dump(), init(), nextMove(), nextMoveWithGeneration(), nextTacticalMove(), と nextTacticalMoveWithGeneration().
int osl::search::MoveGenerator::cur_state [private] |
moveGenerator.h の 63 行で定義されています。
参照元 dump(), init(), nextMove(), nextMoveWithGeneration(), nextTacticalMove(), と nextTacticalMoveWithGeneration().
RatingEnv osl::search::MoveGenerator::env [private] |
moveGenerator.h の 69 行で定義されています。
参照元 generateAll(), generateCapture(), generateKingEscape(), generateTakeBack(), generateTesuji(), init(), と myPins().
moveGenerator.h の 71 行で定義されています。
参照元 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.h の 61 行で定義されています。
参照元 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.h の 60 行で定義されています。
参照元 generateAll(), nextMoveWithGeneration(), と nextTacticalMoveWithGeneration().
bool osl::search::MoveGenerator::in_pv [private] |
moveGenerator.h の 75 行で定義されています。
参照元 generateAll().
bool osl::search::MoveGenerator::in_quiesce [private] |
moveGenerator.h の 73 行で定義されています。
参照元 addCapture(), generateAll(), generateTakeBack(), generateTesuji(), と init().
int osl::search::MoveGenerator::limit [private] |
moveGenerator.h の 66 行で定義されています。
MoveMarker osl::search::MoveGenerator::marker [private] |
moveGenerator.h の 68 行で定義されています。
参照元 addCapture(), generateAll(), generateBreakThreatmate(), generateTakeBack(), generateTesuji(), init(), と registerMove().
MoveLogProbVector osl::search::MoveGenerator::moves [private] |
Progress32 osl::search::MoveGenerator::progress [private] |
moveGenerator.h の 70 行で定義されています。
参照元 init().
const SimpleHashRecord* osl::search::MoveGenerator::record [private] |
moveGenerator.h の 65 行で定義されています。
参照元 generateBreakThreatmate(), generateKingEscape(), init(), nextMoveWithGeneration(), と nextTacticalMoveWithGeneration().
int osl::search::MoveGenerator::tried [private] |
moveGenerator.h の 67 行で定義されています。
参照元 dump(), init(), nextMove(), nextMoveWithGeneration(), nextTacticalMove(), nextTacticalMoveWithGeneration(), registerMove(), と triedMoves().
1.6.3