Select Cambodian Chess by separate option
authorH.G. Muller <h.g.muller@hccnet.nl>
Fri, 7 Oct 2011 14:22:33 +0000 (16:22 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Fri, 7 Oct 2011 16:06:08 +0000 (18:06 +0200)
A -check option is added to select Cambodian rules in Makruk, so that
this can now be played as Makruk under WinBoard. (This was needed to get
the promotion rules right.) The Cambodian Chess definition in the ini file
is changed from fairy/Cambodian to cambodian, and special code makes this
substitution for makruk.

data/fmax.ini
fairymax.c

index a1d6644..a14f75c 100644 (file)
@@ -305,7 +305,7 @@ n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
 R:630 1,3 16,3 -1,3 -16,3\r
 \r
 // Cambodian Chess. Like Makruk, but with extra initial King and Met moves\r
-Game: fairy/Cambodian # PN.R.M....SKpn.r.m....sk\r
+Game: cambodian\r
 8x8\r
 13 12 8 3 7 8 12 13\r
 13 12 9 7 4 9 12 13\r
index 98ff2cf..ba9672f 100644 (file)
@@ -90,6 +90,7 @@ int Fifty;
 int UnderProm;\r
 int GameNr;\r
 int Resign;\r
+int Cambodian;\r
 int Threshold = 800;\r
 int Score;\r
 int makruk;\r
@@ -441,6 +442,7 @@ void PrintOptions()
        printf("feature option=\"Ini File -file %s\"\n", inifile);\r
        printf("feature option=\"Multi-PV Margin -spin %d 0 1000\"\n", margin);\r
        printf("feature option=\"Variant fairy selects -combo "); PrintVariants(1); printf("\"\n");\r
+       printf("feature option=\"Cambodian Makruk rules -check %d\"\n", Cambodian);\r
        printf("feature option=\"Dummy Slider Example -slider 20 0 100\"\n");\r
        printf("feature option=\"Dummy String Example -string happy birthday!\"\n");\r
        printf("feature option=\"Dummy Path Example -path .\"\n");\r
@@ -465,6 +467,7 @@ int LoadGame(char *name)
         gating = 0;\r
         if(name != NULL)\r
         {  /* search for game name in definition file */\r
+           if(!strcmp(name, "makruk") && Cambodian) name = "cambodian"; else\r
            if(!strcmp(name, "fairy")) name = selectedFairy;\r
            gating = !strcmp(name, "seirawan");\r
            while((ptc=fscanf(f, "Game: %s # %s", buf, pieceToChar))==0 || strcmp(name, buf) ) {\r
@@ -732,6 +735,7 @@ int main(int argc, char **argv)
                        if(sscanf(line+7, "Clear Hash") == 1) for(i=0; i<U; i++) A->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
                        continue;\r
                }\r
                if (!strcmp(command, "go")) {\r