クラス osl::eval::PieceEval

駒の価値ベースの評価関数. [詳細]

#include <pieceEval.h>

すべてのメンバ一覧

Public メソッド

 PieceEval (const NumEffectState &state)
 PieceEval (int v)
void changeTurn ()
int value () const
const Move suggestMove (const NumEffectState &) const
int expect (const NumEffectState &, Move move) const
 state でmoveを指した後の評価値を予測
const Progress32 progress32 () const
const Progress16 progress16 () const
void update (const NumEffectState &, Move last_move)
const PieceMask pins (Player) const
template<osl::Player P>
int computeDiffAfterMove (const NumEffectState &state, Move move)

Static Public メソッド

static bool initialized ()
static int diffWithMove (const NumEffectState &, Move move)
static int infty ()
template<Player P>
static int computeDiffAfterMove (const NumEffectState &state, Move move)
 move による取り返し値の変化 (SOMA)
static int computeDiffAfterMove (const NumEffectState &state, Move move)
template<Player P>
static int computeDiffAfterMoveForRP (const NumEffectState &state, Move move)
 実現確率探索用取り返し値
static int computeDiffAfterMoveForRP (const NumEffectState &state, Move move)
static int seeScale ()
static int captureValue (PtypeO ptypeO)
 QuiescenceSearch の枝刈で使用.
static int value (PtypeO ptypeO)

Private メソッド

void addVal (int d)

Private 変数

int val

説明

駒の価値ベースの評価関数.

必ず偶数 先手有利 +, 後手有利 - 歩 PtypeEvalTraits<PAWN>::val

pieceEval.h67 行で定義されています。


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

osl::eval::PieceEval::PieceEval ( const NumEffectState &  state  )  [explicit]
osl::eval::PieceEval::PieceEval ( int  v  )  [inline, explicit]

pieceEval.h72 行で定義されています。


関数

void osl::eval::PieceEval::addVal ( int  d  )  [inline, private]

pieceEval.h133 行で定義されています。

参照先 val.

参照元 update().

static int osl::eval::PieceEval::captureValue ( PtypeO  ptypeO  )  [inline, static]

QuiescenceSearch の枝刈で使用.

pieceEval.h161 行で定義されています。

参照先 osl::eval::PtypeEvalTable::captureValue(), と osl::eval::Ptype_Eval_Table.

参照元 osl::effect_util::UnblockableEffect::find().

void osl::eval::PieceEval::changeTurn (  )  [inline]

pieceEval.h74 行で定義されています。

template<osl::Player P>
int osl::eval::PieceEval::computeDiffAfterMove ( const NumEffectState &  state,
Move  move 
) [inline]

move.to() に利きのある駒を集める

moveの結果, 延びる効きがあるか

現状で自分を除くすべての駒

pieceEval.tcc209 行で定義されています。

参照先 diffWithMove(), osl::Move::from(), osl::Position::isPieceStand(), osl::Move::ptypeO(), osl::Move::to(), と val.

static int osl::eval::PieceEval::computeDiffAfterMove ( const NumEffectState &  state,
Move  move 
) [inline, static]

pieceEval.h104 行で定義されています。

参照先 osl::BLACK, と osl::Move::player().

template<Player P>
static int osl::eval::PieceEval::computeDiffAfterMove ( const NumEffectState &  state,
Move  move 
) [inline, static]

move による取り返し値の変化 (SOMA)

  • move 後のマスだけ考える
  • 基本は価値の小さい順に調べる
  • 順番に関して,PROMOTE の有無は考えていない
  • 現在,飛車や香の利きはmove の後ろにあるものしか伸びない
  • ?? 駒が味方の駒を飛び越える手も考える
  • 数値の価値は Player にとって.
  • 王手などは気にしない
static int osl::eval::PieceEval::computeDiffAfterMoveForRP ( const NumEffectState &  state,
Move  move 
) [inline, static]

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

参照先 osl::BLACK, と osl::Move::player().

template<Player P>
static int osl::eval::PieceEval::computeDiffAfterMoveForRP ( const NumEffectState &  state,
Move  move 
) [inline, static]

実現確率探索用取り返し値

現在の局面の評価値と move 後の局面の差分(Pが得する場合が正とな るよう符号を補正)を返す.

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

参照先 osl::BLACK, と osl::Move::player().

static int osl::eval::PieceEval::diffWithMove ( const NumEffectState &  ,
Move  move 
) [inline, static]
int osl::eval::PieceEval::expect ( const NumEffectState &  ,
Move  move 
) const [inline]
static int osl::eval::PieceEval::infty (  )  [inline, static]

pieceEval.h89 行で定義されています。

static bool osl::eval::PieceEval::initialized (  )  [inline, static]

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

const PieceMask osl::eval::PieceEval::pins ( Player   )  const [inline]

pieceEval.h183 行で定義されています。

const Progress16 osl::eval::PieceEval::progress16 (  )  const [inline]

pieceEval.h156 行で定義されています。

const Progress32 osl::eval::PieceEval::progress32 (  )  const [inline]

pieceEval.h155 行で定義されています。

static int osl::eval::PieceEval::seeScale (  )  [inline, static]

pieceEval.h157 行で定義されています。

const Move osl::eval::PieceEval::suggestMove ( const NumEffectState &   )  const [inline]

pieceEval.h135 行で定義されています。

void osl::eval::PieceEval::update ( const NumEffectState &  ,
Move  last_move 
) [inline]
static int osl::eval::PieceEval::value ( PtypeO  ptypeO  )  [inline, static]

pieceEval.h165 行で定義されています。

参照先 osl::eval::Ptype_Eval_Table, と osl::eval::PtypeEvalTable::value().

int osl::eval::PieceEval::value (  )  const [inline]

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

参照先 val.

参照元 expect(), と show().


変数

pieceEval.h69 行で定義されています。

参照元 addVal(), computeDiffAfterMove(), expect(), と value().


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