From: Marco Costalba Date: Thu, 4 Feb 2010 18:24:41 +0000 (+0100) Subject: Use gain table to order non-captures X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=2e70a2873f42e327546248172baa77a76ae0b0fc Use gain table to order non-captures Gain value is multiplied by 16 to be of comparable magnitudo of negative history, on average. This patch shows very good results in tactical tests, but started very bad in real games, so I have run two test matches. After 896 games at 1+0 Mod vs Orig +187 =525 -184 +1 ELO After 999 games at 1+0 Mod vs Orig +223 =590 -186 +13 ELO Signed-off-by: Marco Costalba --- diff --git a/src/movepick.cpp b/src/movepick.cpp index 582978e6..6bb5c315 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -213,6 +213,7 @@ void MovePicker::score_noncaptures() { Move m; Piece piece; Square from, to; + int hs; for (MoveStack* cur = moves; cur != lastMove; cur++) { @@ -220,7 +221,14 @@ void MovePicker::score_noncaptures() { from = move_from(m); to = move_to(m); piece = pos.piece_on(from); - cur->score = H.move_ordering_score(piece, to); + hs = H.move_ordering_score(piece, to); + + // Ensure history has always highest priority + if (hs > 0) + hs += 10000; + + // Gain table based scoring + cur->score = hs + 16 * H.gain(piece, to); } }