mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Rename score to value in ExtMove
We use 'score' for the value mid-endgame pair. No functional change.
This commit is contained in:
parent
441a34a1c6
commit
f12449d492
2 changed files with 18 additions and 18 deletions
|
@ -49,9 +49,9 @@ namespace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unary predicate used by std::partition to split positive scores from remaining
|
// Unary predicate used by std::partition to split positive values from remaining
|
||||||
// ones so as to sort the two sets separately, with the second sort delayed.
|
// ones so as to sort the two sets separately, with the second sort delayed.
|
||||||
inline bool has_positive_score(const ExtMove& ms) { return ms.score > 0; }
|
inline bool has_positive_value(const ExtMove& ms) { return ms.value > 0; }
|
||||||
|
|
||||||
// Picks the best move in the range (begin, end) and moves it to the front.
|
// Picks the best move in the range (begin, end) and moves it to the front.
|
||||||
// It's faster than sorting all the moves in advance when there are few
|
// It's faster than sorting all the moves in advance when there are few
|
||||||
|
@ -142,8 +142,8 @@ MovePicker::MovePicker(const Position& p, Move ttm, const HistoryStats& h, Piece
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// score() assign a numerical move ordering score to each move in a move list.
|
/// score() assign a numerical value to each move in a move list. The moves with
|
||||||
/// The moves with highest scores will be picked first.
|
/// highest values will be picked first.
|
||||||
template<>
|
template<>
|
||||||
void MovePicker::score<CAPTURES>() {
|
void MovePicker::score<CAPTURES>() {
|
||||||
// Winning and equal captures in the main search are ordered by MVV/LVA.
|
// Winning and equal captures in the main search are ordered by MVV/LVA.
|
||||||
|
@ -164,14 +164,14 @@ void MovePicker::score<CAPTURES>() {
|
||||||
for (ExtMove* it = moves; it != end; ++it)
|
for (ExtMove* it = moves; it != end; ++it)
|
||||||
{
|
{
|
||||||
m = it->move;
|
m = it->move;
|
||||||
it->score = PieceValue[MG][pos.piece_on(to_sq(m))]
|
it->value = PieceValue[MG][pos.piece_on(to_sq(m))]
|
||||||
- type_of(pos.moved_piece(m));
|
- type_of(pos.moved_piece(m));
|
||||||
|
|
||||||
if (type_of(m) == PROMOTION)
|
if (type_of(m) == PROMOTION)
|
||||||
it->score += PieceValue[MG][promotion_type(m)] - PieceValue[MG][PAWN];
|
it->value += PieceValue[MG][promotion_type(m)] - PieceValue[MG][PAWN];
|
||||||
|
|
||||||
else if (type_of(m) == ENPASSANT)
|
else if (type_of(m) == ENPASSANT)
|
||||||
it->score += PieceValue[MG][PAWN];
|
it->value += PieceValue[MG][PAWN];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ void MovePicker::score<QUIETS>() {
|
||||||
for (ExtMove* it = moves; it != end; ++it)
|
for (ExtMove* it = moves; it != end; ++it)
|
||||||
{
|
{
|
||||||
m = it->move;
|
m = it->move;
|
||||||
it->score = history[pos.moved_piece(m)][to_sq(m)];
|
it->value = history[pos.moved_piece(m)][to_sq(m)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,21 +191,21 @@ template<>
|
||||||
void MovePicker::score<EVASIONS>() {
|
void MovePicker::score<EVASIONS>() {
|
||||||
// Try good captures ordered by MVV/LVA, then non-captures if destination square
|
// Try good captures ordered by MVV/LVA, then non-captures if destination square
|
||||||
// is not under attack, ordered by history value, then bad-captures and quiet
|
// is not under attack, ordered by history value, then bad-captures and quiet
|
||||||
// moves with a negative SEE. This last group is ordered by the SEE score.
|
// moves with a negative SEE. This last group is ordered by the SEE value.
|
||||||
Move m;
|
Move m;
|
||||||
Value seeScore;
|
Value see;
|
||||||
|
|
||||||
for (ExtMove* it = moves; it != end; ++it)
|
for (ExtMove* it = moves; it != end; ++it)
|
||||||
{
|
{
|
||||||
m = it->move;
|
m = it->move;
|
||||||
if ((seeScore = pos.see_sign(m)) < VALUE_ZERO)
|
if ((see = pos.see_sign(m)) < VALUE_ZERO)
|
||||||
it->score = seeScore - HistoryStats::Max; // At the bottom
|
it->value = see - HistoryStats::Max; // At the bottom
|
||||||
|
|
||||||
else if (pos.capture(m))
|
else if (pos.capture(m))
|
||||||
it->score = PieceValue[MG][pos.piece_on(to_sq(m))]
|
it->value = PieceValue[MG][pos.piece_on(to_sq(m))]
|
||||||
- type_of(pos.moved_piece(m)) + HistoryStats::Max;
|
- type_of(pos.moved_piece(m)) + HistoryStats::Max;
|
||||||
else
|
else
|
||||||
it->score = history[pos.moved_piece(m)][to_sq(m)];
|
it->value = history[pos.moved_piece(m)][to_sq(m)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ void MovePicker::generate_next_stage() {
|
||||||
case QUIETS_1_S1:
|
case QUIETS_1_S1:
|
||||||
endQuiets = end = generate<QUIETS>(pos, moves);
|
endQuiets = end = generate<QUIETS>(pos, moves);
|
||||||
score<QUIETS>();
|
score<QUIETS>();
|
||||||
end = std::partition(cur, end, has_positive_score);
|
end = std::partition(cur, end, has_positive_value);
|
||||||
insertion_sort(cur, end);
|
insertion_sort(cur, end);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -295,7 +295,7 @@ void MovePicker::generate_next_stage() {
|
||||||
|
|
||||||
/// next_move() is the most important method of the MovePicker class. It returns
|
/// next_move() is the most important method of the MovePicker class. It returns
|
||||||
/// a new pseudo legal move every time it is called, until there are no more moves
|
/// a new pseudo legal move every time it is called, until there are no more moves
|
||||||
/// left. It picks the move with the biggest score from a list of generated moves
|
/// left. It picks the move with the biggest value from a list of generated moves
|
||||||
/// taking care not to return the ttMove if it has already been searched.
|
/// taking care not to return the ttMove if it has already been searched.
|
||||||
template<>
|
template<>
|
||||||
Move MovePicker::next_move<false>() {
|
Move MovePicker::next_move<false>() {
|
||||||
|
|
|
@ -322,11 +322,11 @@ extern Value PieceValue[PHASE_NB][PIECE_NB];
|
||||||
|
|
||||||
struct ExtMove {
|
struct ExtMove {
|
||||||
Move move;
|
Move move;
|
||||||
int score;
|
Value value;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline bool operator<(const ExtMove& f, const ExtMove& s) {
|
inline bool operator<(const ExtMove& f, const ExtMove& s) {
|
||||||
return f.score < s.score;
|
return f.value < s.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Color operator~(Color c) {
|
inline Color operator~(Color c) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue