X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=fairymax.c;h=007e54265109b8535a8e7d1ce89b061b0c6fcbfd;hb=939a2bbeae4f2840f1acb3b3bae5e0f360dadfef;hp=9b80061b62440a871477d8906f0b112f2659fb96;hpb=04cab86f1aaa0720980153e862ce8641beee489b;p=fairymax.git diff --git a/fairymax.c b/fairymax.c index 9b80061..007e542 100644 --- a/fairymax.c +++ b/fairymax.c @@ -102,6 +102,7 @@ int GameNr; int Resign; char Cambodian[80] = "makruk"; int Threshold = 800; +int drawMoves = 50; int Score; int makruk; int prom, pm, gating, succession, hill; @@ -238,6 +239,7 @@ int k,q,l,e,E,z,n; /* (q,l)=window, e=current eval. score, E=e.p. sqr.*/ a->D=99;a->V=0; /* lock game in hash as draw*/ R-=i/FAC; /*** total captd material ***/ Fifty = t|p<3?0:Fifty+1; + if(centr[p]==5)b[257+y]-=5; sp=ps; return l;} /* & not in check, signal */ v=m; /* (prevent fail-lows on */ @@ -374,7 +376,7 @@ int PrintResult(int s) } return 3; } - if(Fifty >=100) { + if(Fifty >= 2*drawMoves) { printf("1/2-1/2 {Draw by fifty move rule}\n"); return 4; } @@ -458,6 +460,7 @@ void PrintOptions() printf("feature option=\"Multi-PV Margin -spin %d 0 1000\"\n", margin); printf("feature option=\"Variant fairy selects -combo "); PrintVariants(1); printf("\"\n"); printf("feature option=\"Makruk rules -combo makruk /// Cambodian /// Ai-wok\"\n"); + printf("feature option=\"Claim draw after -spin %d 0 200\"\n", drawMoves); printf("feature option=\"Dummy Slider Example -slider 20 0 100\"\n"); printf("feature option=\"Dummy String Example -string happy birthday!\"\n"); printf("feature option=\"Dummy Path Example -path .\"\n"); @@ -500,7 +503,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) + makruk = 0; if(fscanf(f, "=%d", &i)) makruk=67-i; // new method to indicate deviant zone depth (for now assumes 3) for(i=0; i>8<2)centr[4]=5;if(!(N&S-2))centr[3]=5;Z+=R>4;R=4;} -printf("# %04x pieces, centr = (%d,%d)\n", N, centr[3], centr[4]); +printf("# %d+%d pieces, centr = (%d,%d)\n", N&63, N>>7, centr[3], centr[4]); N=0;K=I; if(hill) centr[3] = R>20 ? 1 : 22-R; if (D(Side,-I,I,Q,O,LL|S,3)==I) { @@ -758,6 +762,7 @@ printf("# promo = %d (%c) GT = %d\n", prom, prom + '`', GT); if(sscanf(line+7, "MultiVariation Margin=%d", &margin) == 1) continue; if(sscanf(line+7, "Variant fairy selects=%s", selectedFairy+6) == 1) continue; if(sscanf(line+7, "Makruk rules=%s", Cambodian) == 1) continue; + if(sscanf(line+7, "Claim draw after=%d", &drawMoves) == 1) continue; continue; } if (!strcmp(command, "go")) {