Skip to content

Commit

Permalink
- SkillLevelエンジンオプション削除。(使えてないので)
Browse files Browse the repository at this point in the history
- search.h / yaneuraou-search.cpp 、namespaceでインデント下げるのやめる。
- LimitsType::bench削除。
- CapturePieceValuePlusPromote() → namespace Evalに移動。
- 探索部のコメント、リンク先等の修正。
  • Loading branch information
yaneurao committed Nov 3, 2023
1 parent 97ada38 commit 2b1b23a
Show file tree
Hide file tree
Showing 6 changed files with 3,526 additions and 3,497 deletions.
6,593 changes: 3,302 additions & 3,291 deletions source/engine/yaneuraou-engine/yaneuraou-search.cpp

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions source/eval/evaluate_bona_piece.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ namespace Eval
VALUE_ZERO, ProPawnValue - PawnValue, ProLanceValue - LanceValue, ProKnightValue - KnightValue, ProSilverValue - SilverValue, HorseValue - BishopValue, DragonValue - RookValue, VALUE_ZERO ,
VALUE_ZERO, ProPawnValue - PawnValue, ProLanceValue - LanceValue, ProKnightValue - KnightValue, ProSilverValue - SilverValue, HorseValue - BishopValue, DragonValue - RookValue, VALUE_ZERO ,
};

// 指し手moveによってtoの地点の駒が捕獲できることがわかっている時の、駒を捕獲する価値
// moveが成りの指し手である場合、その価値も上乗せして計算する。
Value CapturePieceValuePlusPromote(const Position& pos, Move move)
{
return (Value)CapturePieceValue[pos.piece_on(to_sq(move))]
+ (is_promote(move) ? (Value)ProDiffPieceValue[pos.piece_on(from_sq(move))] : VALUE_ZERO);
}

#endif


Expand Down
12 changes: 10 additions & 2 deletions source/evaluate.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,19 +83,27 @@ namespace Eval {
KingValue = 15000,
};

// 駒の価値のテーブル(後手の駒は負の値)
// 駒の価値のテーブル
// ※ 後手の駒は負の値なので注意。
// → 後手の駒に対してプラスの値が欲しいなら、PieceValue[type_of(pc)]のようにする。
extern int PieceValue[PIECE_NB];

// 駒の交換値(=捕獲したときの価値の上昇値)
// 例)「と」を取ったとき、評価値の変動量は手駒歩+盤面の「と」。
// MovePickerとSEEの計算で用いる。
// ※ 後手の駒に対してもプラスの値が返るので注意。
extern int CapturePieceValue[PIECE_NB];

// 駒を成ったときの成る前との価値の差。SEEで用いる。
// 駒の成ったものと成っていないものとの価値の差
// ※ PAWNでもPRO_PAWNでも と金 - 歩 の価値が返る。
//後手の駒に対してもプラスの値が返る
//後手の駒に対してもプラスの値が返るので注意
extern int ProDiffPieceValue[PIECE_NB];

// 指し手moveによってtoの地点の駒が捕獲できることがわかっている時の、駒を捕獲する価値
// moveが成りの指し手である場合、その価値も上乗せして計算する。
extern Value CapturePieceValuePlusPromote(const Position& pos, Move move);

#endif


Expand Down
5 changes: 2 additions & 3 deletions source/movepick.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,9 @@ void MovePicker::score()

// ここに来るCAPTURESに歩の成りを含めているので、捕獲する駒(pos.piece_on(to_sq(m)))がNO_PIECEで
// ある可能性については考慮しておく必要がある。
// → Eval::CapturePieceValuePlusPromote()を用いて計算。

m.value = (7 * int(Eval::CapturePieceValue[pos.piece_on(to_sq(m))]
// 歩の成り = ProDiffPieceValue[PAWN]を加算。
+ (is_promote(m) ? Eval::ProDiffPieceValue[pos.moved_piece_after(m)] : 0) )
m.value = (7 * int(Eval::CapturePieceValuePlusPromote(pos, m))
+ (*captureHistory)(pos.moved_piece_after(m), to_sq(m), type_of(pos.piece_on(to_sq(m)))))
/ 16;
}
Expand Down
Loading

0 comments on commit 2b1b23a

Please sign in to comment.