Fix promotion value Shatranj / Courier / Makruk
authorH.G. Muller <h.g.muller@hccnet.nl>
Tue, 26 Feb 2013 14:15:20 +0000 (15:15 +0100)
committerH.G. Muller <h.g.muller@hccnet.nl>
Tue, 26 Feb 2013 14:15:20 +0000 (15:15 +0100)
The patch to use true piece value in game-level promotions broke variants
in which promotion is to the worthless Ferz. Because in subtrating the
default score it did not take into account the division by 8 this has
in the search for such variants.

fairymax.c

index c893b37..3bd0c69 100644 (file)
@@ -232,7 +232,7 @@ int k,q,l,e,E,z,n;      /* (q,l)=window, e=current eval. score, E=e.p. sqr.*/
         {if(v+I&&x==K&y==L&gt==GT)             /*   if move found          */\r
          {Q=-e-i;O=F;LL=L;prom=gt;\r
           if(b[y]-u&15)prom=b[y]-=PromPiece,   /* (under-)promotion:       */\r
-           Q-=abs(w[prom&=15])-w[p]-6*S,       /*  correct piece & score & */\r
+           Q-=abs(w[prom&=15])-w[p]-(6*S>>sh), /*  correct piece & score & */\r
                        Z+=PromPiece;           /*  invalidate hash         */\r
           a->D=99;a->V=0;                      /* lock game in hash as draw*/\r
           R-=i/FAC;                            /*** total captd material ***/\r