Use mobility in kingsafety (#1360)
authormbootsector <mbootsector@gmail.com>
Sat, 13 Jan 2018 07:56:42 +0000 (08:56 +0100)
committerMarco Costalba <mcostalba@users.noreply.github.com>
Sat, 13 Jan 2018 07:56:42 +0000 (08:56 +0100)
Use mobility in kingsafety

STC: http://tests.stockfishchess.org/tests/view/5a55134d0ebc590296938a28
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 32651 W: 6057 L: 5792 D: 20802

LTC: http://tests.stockfishchess.org/tests/view/5a5618f40ebc590297da516f
LLR: 2.94 (-2.94,2.94) [0.00,5.00]
Total: 17875 W: 2421 L: 2245 D: 13209

bench: 5365777

src/evaluate.cpp

index fa3b0a7..7d5d435 100644 (file)
@@ -486,9 +486,13 @@ namespace {
                      -   9 * mg_value(score) / 8
                      +  40;
 
-        // Transform the kingDanger units into a Score, and substract it from the evaluation
+        // Transform the kingDanger units into a Score, and substract it from the evaluation.
         if (kingDanger > 0)
+        {
+            int mobilityDanger = mg_value(mobility[Them] - mobility[Us]);
+            kingDanger = std::max(0, kingDanger + mobilityDanger);
             score -= make_score(kingDanger * kingDanger / 4096, kingDanger / 16);
+        }
     }
 
     // King tropism: firstly, find squares that opponent attacks in our king flank