Implement null move
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 27 May 2013 20:54:24 +0000 (22:54 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Mon, 21 Oct 2013 08:40:24 +0000 (10:40 +0200)
hachu.c

diff --git a/hachu.c b/hachu.c
index c9350ae..58f6334 100644 (file)
--- a/hachu.c
+++ b/hachu.c
@@ -18,6 +18,7 @@
 \r
 #define HASH\r
 #define KILLERS\r
+#define NULLMOVE\r
 \r
 #include <stdio.h>\r
 #include <stdlib.h>\r
@@ -1633,10 +1634,10 @@ if(flag && depth>= 0) printf("phase=%d: first/curr/last = %d / %d / %d\n", phase
              bestScore = curEval; resDep = QSdepth;\r
              if(bestScore >= beta || depth < -1) goto cutoff;\r
            }\r
-#if 0\r
-           if(curEval >= beta) {\r
+#ifdef NULLMOVE\r
+           else if(curEval >= beta) {\r
              stm ^= WHITE;\r
-             score = -Search(-beta, -iterAlpha, -difEval, depth-3, promoSuppress & SQUARE, ABSENT);\r
+             score = -Search(-beta, 1-beta, -difEval, depth > 3 ? depth-3 : 0, promoSuppress & SQUARE, ABSENT);\r
              stm ^= WHITE;\r
              if(score >= beta) { msp = oldMSP; retDep += 3; return score + (score < curEval); }\r
            }\r