玉の動ける場所を基本としたHの推定. [詳細]
#include <libertyEstimator.h>
Static Public メソッド | |
template<class State > | |
static void | attackH (Player attacker, const State &, King8Info, Move move, unsigned int &proof_number, unsigned int &disproof_number) |
攻撃側の move に対する proof_number と disproof_number を予想する | |
template<class State > | |
static void | defenseH (Player attacker, const State &, Move move, unsigned int &proof_number, unsigned int &disproof_number) |
防御側の move に対する proof_number と disproof_number を予想する |
玉の動ける場所を基本としたHの推定.
駒を取る/捨てるなども多少考慮する.
libertyEstimator.h の 42 行で定義されています。
void osl::checkmate::LibertyEstimator::attackH | ( | Player | attacker, | |
const State & | state, | |||
King8Info | info, | |||
Move | move, | |||
unsigned int & | proof_number, | |||
unsigned int & | disproof_number | |||
) | [inline, static] |
攻撃側の move に対する proof_number と disproof_number を予想する
効きが上回っていれば先にやってみる
駒を取る
libertyEstimator.h の 61 行で定義されています。
参照先 osl::alt(), osl::Move::capturePtype(), osl::Move::from(), osl::GOLD, osl::Position::isPieceStand(), osl::PTYPE_EMPTY, osl::SILVER, osl::Move::to(), と osl::unpromote().
参照元 osl::checkmate::Dfpn::attack(), と osl::ntesuki::NtesukiRecord::generateMoves().
void osl::checkmate::LibertyEstimator::defenseH | ( | Player | attacker, | |
const State & | state, | |||
Move | move, | |||
unsigned int & | proof_number, | |||
unsigned int & | disproof_number | |||
) | [inline, static] |
防御側の move に対する proof_number と disproof_number を予想する
captureは価値が高い
libertyEstimator.h の 105 行で定義されています。
参照先 osl::alt(), osl::Move::capturePtype(), osl::Move::isDrop(), osl::KING, osl::Move::ptype(), osl::PTYPE_EMPTY, と osl::Move::to().