Also search null move in QS iteration of deeper nodes
[fairymax.git] / fairymax.c
index b5f0545..f9cf637 100644 (file)
@@ -163,7 +163,7 @@ int k,q,l,e,ev,E,z,n;    /* (q,l)=window, e=current eval. score, E=e.p. sqr.*/
    (K=X,L=Y&~S,Score=m,d=3)))                  /* time's up: go do best    */\r
  {x=B=X;                                       /* start scan at prev. best */\r
   h=Y&S;                                       /* request try noncastl. 1st*/\r
-  P=d>2&&l+I?D(16-k,-l,1-l,-e,-ev,2*S,2*S,d-3):I;  /* search null move     */\r
+  P=n>2&d>1&&l+I?D(16-k,-l,1-l,-e,-ev,2*S,2*S,d-3):I;  /* search null move */\r
   m=-P<l|R<5?d-2?-I:ev:-P;  /*** prune if > beta  unconsidered:static eval */\r
   SHAMAX( if(pl[k]<=1&pl[16-k]>1)m=I-1; )      /* bare king loses          */\r
   N++;                                         /* node count (for timing)  */\r
@@ -773,7 +773,7 @@ int main(int argc, char **argv)
                        if(sscanf(line+7, "Ini File=%s", filename) == 1) {\r
                                inifile = filename; continue;\r
                        }\r
-                       if(sscanf(line+7, "Clear Hash%c", &c) == 1) for(i=0; i<=U; i++) A->K = 0;\r
+                       if(sscanf(line+7, "Clear Hash%c", &c) == 1) for(i=0; i<=U; i++) A[i].K = 0;\r
                        if(sscanf(line+7, "MultiVariation Margin=%d", &margin) == 1) continue;\r
                        if(sscanf(line+7, "Variant fairy selects=%s", selectedFairy+6) == 1) continue;\r
                        if(sscanf(line+7, "Cambodian Makruk rules=%d", &Cambodian) == 1) continue;\r