From 2e70a2873f42e327546248172baa77a76ae0b0fc Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Thu, 4 Feb 2010 19:24:41 +0100 Subject: [PATCH] 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 --- src/movepick.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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); } } -- 2.39.2