From dc22c7f5c743ff4ef5243e10b4a050ad1aad4142 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Mon, 20 May 2013 12:15:11 +0200 Subject: [PATCH] Adopt new method for indicating promotion-zone depth Fairy-Max normally promotes Pawns only on last rank. For Makruk, whih needs 6th rank, a kludge was used by trikkering on value 181 of the promotion piece. Now a suffix =N to the board-size spec is used in stead, where N indicates the deviant zone depth. For now we always assume N=3 when this suffix is present (as the IA would not know how to do other zone depth than 1 or 3). --- data/fmax.ini | 4 ++-- fairymax.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/fmax.ini b/data/fmax.ini index 5ecb18a..93e7f74 100644 --- a/data/fmax.ini +++ b/data/fmax.ini @@ -326,7 +326,7 @@ R:630 1,3 16,3 -1,3 -16,3 // Thai Chess. Note: value m = 181 controls promotion at 6th! Game: makruk -8x8 +8x8=3 12 11 8 7 3 8 11 12 12 11 9 3 7 9 11 12 p:100 -16,6 -15,5 -17,5 @@ -344,7 +344,7 @@ R:630 1,3 16,3 -1,3 -16,3 // Cambodian Chess. Like Makruk, but with extra initial King and Met moves Game: cambodian -8x8 +8x8=3 13 12 8 3 7 8 12 13 13 12 9 7 4 9 12 13 p:100 -16,6 -15,5 -17,5 diff --git a/fairymax.c b/fairymax.c index 560f64d..94edc78 100644 --- a/fairymax.c +++ b/fairymax.c @@ -498,6 +498,7 @@ void LoadGame(char *name) /* We have found variant, or if none specified, are at beginning of file */ if(fscanf(f, "%dx%d", &BW, &BH)!=2 || BW>12 || BH!=8) { printf("telluser unsupported board size %dx%d\n",BW,BH); exit(0); } + makruk = 0; if(fscanf(f, "=%d", &i)) makruk=64; // new method to indicate deviant zone depth (for now assumes 3) for(i=0; i