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: cambodian\r
+Game: Cambodian\r
8x8=3\r
13 12 8 3 7 8 12 13\r
13 12 9 7 4 9 12 13\r
m:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4\r
s:300 15,7 17,7 -15,7 -17,7 -16,7\r
s:300 15,7 17,7 -15,7 -17,7 16,7\r
+\r
b:300 15,7 17,7 -15,7 -17,7 -16,7\r
b:300 15,7 17,7 -15,7 -17,7 16,7\r
+\r
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
R:630 1,3 16,3 -1,3 -16,3\r
\r
+\r
// Thai Chess variant with Ai-Wok (RNF).\r
-Game: ai-wok\r
+Game: Ai-wok\r
+8x8=3\r
+6 5 3 8 7 3 5 6\r
+6 5 4 7 8 4 5 6\r
+p:100 -16,6 -15,5 -17,5 \r
+p:100 16,6 15,5 17,5\r
+s:300 15,7 17,7 -15,7 -17,7 -16,7\r
+s:300 15,7 17,7 -15,7 -17,7 16,7\r
+n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+R:630 1,3 16,3 -1,3 -16,3\r
+A:1350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7\r
+k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
+\r
+// Cambodian Chess using WinBoard's new engine-defined variant mechanism\r
+Game: cambodian # PN.R.M....SKpn.r.m....sk # makruk\r
+8x8=3\r
+13 12 8 3 7 8 12 13\r
+13 12 9 7 4 9 12 13\r
+p:100 -16,6 -15,5 -17,5 \r
+p:100 16,6 15,5 17,5\r
+k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 -16,10F4 -16,1F0F4 -1,100F4 1,FFFF00F4\r
+k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,10F4 16,1F0F4 1,100F4 -1,FFFF00F4\r
+f:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4\r
+q:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4\r
+m:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4\r
+s:300 15,7 17,7 -15,7 -17,7 -16,7\r
+s:300 15,7 17,7 -15,7 -17,7 16,7\r
+\r
+b:300 15,7 17,7 -15,7 -17,7 -16,7\r
+b:300 15,7 17,7 -15,7 -17,7 16,7\r
+\r
+n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
+R:630 1,3 16,3 -1,3 -16,3\r
+\r
+\r
+// Ai-Wok using WinBoard's new engine-defined variant mechanism\r
+Game: ai-wok # PN.R...A..SKpn.r...a..sk # makruk\r
8x8=3\r
6 5 3 8 7 3 5 6\r
6 5 4 7 8 4 5 6\r
s:300 15,7 17,7 -15,7 -17,7 16,7\r
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7\r
R:630 1,3 16,3 -1,3 -16,3\r
-M:1350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7\r
+A:1350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7\r
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7\r
\r
// Medieval intermediate between Shatranj and FIDE Chess\r
}\r
differs: ;\r
}\r
+\r
K=I;\r
cnt = D(s,-I,I,Q,O,LL|4*S,3);\r
#ifdef SHATRANJ\r
while((c = fgetc(f)) != EOF && c != '\n');\r
if(c == EOF) break;\r
total++;\r
- if(combo == (strstr(buf, "fairy/") != buf)) continue;\r
+ if(*buf < 'a' || combo == (strstr(buf, "fairy/") != buf)) continue;\r
if(combo && count == 0) strcpy(selectedFairy, buf);\r
if(count++) printf(combo ? " /// " : ",");\r
printf("%s", combo ? buf+6 : buf);\r
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=\"Makruk rules -combo makruk /// cambodian /// ai-wok\"\n");\r
+ printf("feature option=\"Makruk rules -combo makruk /// Cambodian /// Ai-wok\"\n");\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
\r
void LoadGame(char *name)\r
{\r
- int i, j, ptc, count=0; char c, buf[80], pieceToChar[80];\r
+ int i, j, ptc, count=0; char c, buf[80], pieceToChar[80], parent[80];\r
static int currentVariant;\r
FILE *f;\r
\r
if(!strcmp(name, "makruk")) 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
+ while((ptc=fscanf(f, "Game: %s # %s # %s", buf, pieceToChar, parent))==0 || strcmp(name, buf) ) {\r
while((c = fgetc(f)) != EOF && c != '\n');\r
count++;\r
if(c == EOF) {\r
\r
fclose(f);\r
sh = w[7] < 250 ? 3 : 0;\r
- if(name == selectedFairy || makruk) {\r
- printf(ptc == 1 ? "setup " : "setup (%s) ", pieceToChar); // setup board in GUI\r
+ if(ptc > 1) { // setup board in GUI, by sending it pieceToCharTable and FEN\r
+ if(ptc == 2) printf("setup (%s) ", pieceToChar);\r
+ else printf("setup (%s) %dx%d+0_%s ", pieceToChar, BW, BH, parent);\r
for(i=0; i<BW; i++) printf("%c", piecename[oo[i+16]]+'`'); printf("/");\r
if(makruk) printf("8/");\r
for(i=0; i<BW; i++) printf("%c", piecename[2]+'`'); printf("/");\r