Score quasi-repeats somewhat less severe
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 15 May 2017 12:55:06 +0000 (14:55 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 15 May 2017 12:58:53 +0000 (14:58 +0200)
When there is a choice between a mate and a quasi-repeat, it is better
to go for the latter.

dropper.c

index c80e510..71342af 100644 (file)
--- a/dropper.c
+++ b/dropper.c
@@ -1349,8 +1349,8 @@ if(PATH)printf("%d:%d:%d new iter moveStack[%d..%d]\n",ply,depth,iterDepth,m.fir
                           
                        }
                    }
-                   else if(gain == pawn || gain > (450<<21)) score = INF;  // quasi-repeat with extra piece in hand
-                   else if(gain == -pawn || gain < (-450<<21)) score = -INF; // or with one piece less
+                   else if(gain == pawn  || gain >= (400<<21)) score = INF-1;  // quasi-repeat with extra piece in hand
+                   else if(gain == -pawn || gain <= (-400<<21)) score = 1-INF; // or with one piece less
                    else goto search;// traded one hand piece for another; could still lead somewhere
                } else { // not a repeat: search it
                    int lmr;