X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=fairymax.c;h=2046aaa34e153c0304862545efa52534b90d5d0d;hb=b5f6da5924abac2187d0aac1006c7ebd13eb4e9a;hp=281ccbf74d5e5abffd2eec945b184006a6a839d2;hpb=021a095ce431356fef12951397617d81291d2c8a;p=fairymax.git diff --git a/fairymax.c b/fairymax.c index 281ccbf..2046aaa 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; @@ -275,7 +276,7 @@ int k,q,l,e,E,z,n; /* (q,l)=window, e=current eval. score, E=e.p. sqr.*/ )t+=flag&4; /* fake capt. for nonsliding*/ else if(flag&64)t=flag&128?0:t,flag&=63;else F=y; /* enable e.p. */ if(s&&flag&8&&!(y=rg&1?y-r:y,t=0) /* hoppers go to next phase */ - ||!(flag&S)&&--rg<0) /* zig-zag piece? (w. delay)*/ + ||!(flag&S)&&!rg--) /* zig-zag piece? (w. delay)*/ r=v,flag^=flag>>4&15; /* alternate vector & mode */ }W(!t); /* if not capt. continue ray*/ }} @@ -375,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; } @@ -459,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"); @@ -501,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