summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b7063ef)
Passed STC
LLR: 3.71 (-2.94,2.94) [-3.00,1.00]
Total: 64363 W: 12299 L: 12214 D: 39850
and LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 69976 W: 11056 L: 11011 D: 47909
Bench:
8012532
Resolves #340
/// highest values will be picked first.
template<>
void MovePicker::score<CAPTURES>() {
/// highest values will be picked first.
template<>
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.
// Suprisingly, this appears to perform slightly better than SEE based
// move ordering. The reason is probably that in a position with a winning
// Suprisingly, this appears to perform slightly better than SEE based
// move ordering. The reason is probably that in a position with a winning
- // capture, capturing a more valuable (but sufficiently defended) piece
+ // capture, capturing a valuable (but sufficiently defended) piece
// first usually doesn't hurt. The opponent will have to recapture, and
// the hanging piece will still be hanging (except in the unusual cases
// where it is possible to recapture with the hanging piece). Exchanging
// first usually doesn't hurt. The opponent will have to recapture, and
// the hanging piece will still be hanging (except in the unusual cases
// where it is possible to recapture with the hanging piece). Exchanging
// has been picked up in pick_move_from_list(). This way we save some SEE
// calls in case we get a cutoff.
for (auto& m : *this)
// has been picked up in pick_move_from_list(). This way we save some SEE
// calls in case we get a cutoff.
for (auto& m : *this)
- if (type_of(m) == ENPASSANT)
- m.value = PieceValue[MG][PAWN] - Value(PAWN);
-
- else if (type_of(m) == PROMOTION)
- m.value = PieceValue[MG][pos.piece_on(to_sq(m))] - Value(PAWN)
- + PieceValue[MG][promotion_type(m)] - PieceValue[MG][PAWN];
- else
- m.value = PieceValue[MG][pos.piece_on(to_sq(m))]
- - Value(type_of(pos.moved_piece(m)));
+ m.value = Value(int(pos.piece_on(to_sq(m))));