Simplify skill level and reduce ELO
authorMarco Costalba <mcostalba@gmail.com>
Sun, 25 Jan 2015 18:22:43 +0000 (19:22 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 29 Jan 2015 21:35:24 +0000 (22:35 +0100)
This patch has two positive effects:

- Retire a hackish formula and leave
  just a natural, simple and plain one.

- Reduce strenght at very low level, but
  don't impact medium/high levels.

Actually even at level 0, SF is still too
strong for many beginners (this was reported
many times for instance on Droidfish user
comments on Google Play).

Test on fishtest shows that ELO drop is around
170 ELO at level 0 (good!), 130 ELO at level 1
and smoothly reduces (as expected) until level
10 where the drop is just of 8 ELO.

No functional change.

src/search.cpp

index 0ce836f777797ac0d4b785cad8a911261a8c064c..3c32c4bb762a45ee1ae35f14a02aa119ff654418 100644 (file)
@@ -1393,10 +1393,6 @@ moves_loop: // When in check and at SpNode search starts from here
     {
         int score = RootMoves[i].score;
 
-        // Don't allow crazy blunders even at very low skills
-        if (i > 0 && RootMoves[i - 1].score > score + 2 * PawnValueMg)
-            break;
-
         // This is our magic formula
         score += (  weakness * int(RootMoves[0].score - score)
                   + variance * (rng.rand<unsigned>() % weakness)) / 128;