WinBoard, exotic version

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: WinBoard, exotic version

Post by Evert »

As it is not supported, it wouldobvosly have to be played as something else, in this case with legality testing off, because there is no supported variant with the required promotion rules. The most suitable variant to use for this would be Seirawan Chess, because that uses holdings in which captured pieces are not placed.

With legality testing off, any promotion suffix is taken seriously (even on moves with non-Pawns), and WinBoard simply substitutes the moved piece for the one indicated by the suffix. The user would have to type promotion moves, as there will be no automatic promotion or promotion popupon moves that WinBoard does not think are promotions when you enter them with the mouse.

So what you would have to do is to define a pieceToCharTable that defines the participating pieces, and the letters to indicate them. You can have the engine do that, in the setup command it sends in response to receiving variant seirawan. This then also should specify a FEN, including holdings.
Ok, that sortof works.
It correctly starts up with the pawns along third and fourth ranks and all other pieces (King, Rooks, Knights, Ferz and Elephants) in holdings. However, XBoard seems to reject all but the first two drops, even with legality testing switched off. It doesn't seem to be a problem with the engine, since it accepts the moves just fine if I enter them from a terminal.

I didn't implement the promotion rule yet; I simply never promote at all. Since the only promotion option is the Ferz and you can only get a new one if the first one was taken, there doesn't seem to be much of a point anyway.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

I am not sure I fully understand the problem (or the rules,in fact). For one, you would either have to enlarge the holdingsSize (to fit the King), or alter the pieceToCharTable (to squeeze out Hawk and Elephant).

White and black are supposed to drop alternately, one piece per turn, right? Or must white drop all his pieces first, before black can start dropping? The latter would be a problem. But dropping one by one in Seirawan with holdingsSize set to 8 did not cause any problems for me.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: WinBoard, exotic version

Post by Evert »

hgm wrote:I am not sure I fully understand the problem (or the rules,in fact). For one, you would either have to enlarge the holdingsSize (to fit the King), or alter the pieceToCharTable (to squeeze out Hawk and Elephant).
Aha!
I thought that with legality testing off and me sending a string containing 8 pieces in holdings , XBoard would do the right thing. It certainly seemed to.
This may work better; for some unclear reason I get bus errors now when running either Burmese or Makruk (but not Spartan or Normal). Clearly I broke something.
White and black are supposed to drop alternately, one piece per turn, right? Or must white drop all his pieces first, before black can start dropping? The latter would be a problem. But dropping one by one in Seirawan with holdingsSize set to 8 did not cause any problems for me.
There are apparently different rules: either black and white set up pieces one by one, or they take turns, or they do it "at the same time", revealing their setup when everything is done.
I picked the one that was easier to implement. :D
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

XBoard uses a mapping of piece types on holdings squares derived from the pieceToCharTable. (If the holdings size is N, the N lowest pieces defined in the table will go into the holdings, and every other piece will be demoted to Pawn first. At least on capture.) It uses that mapping to translate drop moves entered in text form, to know where to look to see if the piece is available.

The variant where you have to drop taking turns is indeed the most natural one.
Rein Halbersma
Posts: 741
Joined: Tue May 22, 2007 11:13 am

Re: WinBoard, exotic version

Post by Rein Halbersma »

Hi HG and Daniel,

I have managed to install and run WinBoard Alien Edition + Nebiyu 10x10 checkers, including the Draughts Utrecht fonts. There is one glitch for me: entering multiple captures will crash Nebiyu. E.g. in analysis mode there is 1 mandatory capture e4c6a4 in this position.

Code: Select all

1p1p1p1p1p/p1p1p1p1p1/1p1p1p1p1p/4p1p1p1/1p1p6/4P5/1P1P1P1P1P/P3P1P1P1/1P1P1P1P1P/P1P1P1P1P1 w - - 0 3
When I click the following: Ctr+e4c6 and then c6a4, Nebiyu crashes. How should I enter such captures?

Rein
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

It sounds like you are doing it as intended. Could you start WinBoard with the 'Additional option' /debug , paste the FEN, perform the fatal move, and then post the resulting winboard.debug file here? So that I can check if Nebiyu is to blame, or if it is WinBoard that sends it something erroneous on which it chokes.
Rein Halbersma
Posts: 741
Joined: Tue May 22, 2007 11:13 am

Re: WinBoard, exotic version

Post by Rein Halbersma »

1p1p1p1p1p/p1p1p1p1p1/1p1p1p1p1p/4p1p1p1/1p1p6/4P5/1P1P1P1P1P/P3P1P1P1/1P1P1P1P1P/P1P1P1P1P1 w - - 0 3

recognized 'checkers' (-1) as variant checkers
recognized 'checkers' (-1) as variant checkers
WinBoard 4.20110322 + NebiyuCheckers
Reset(1, 0) from gameMode 0
recognized 'checkers' (-1) as variant checkers
GameEnds(0, (null), 2)
shuffleOpenings = 0
TC string = ':40/300'
mps=40 tc=300000 inc=0
TC string = ':40/300'
mps=40 tc=300000 inc=0
StartChildProcess (dir="../NebiyuCheckers") NebiyuCheckers
nice engine proc to 10
578 >first : xboard
protover 2
594 <first : setup (P...Q.p...q.) 10x10+0 1p1p1p1p1p/p1p1p1p1p1/1p1p1p1p1p/p1p1p1p1p1/10/10/1P1P1P1P1P/P1P1P1P1P1/1P1P1P1P1P/P1P1P1P1P1 w - - 0 1
FEN castling rights: 46 46 46 46 46 46
correct board #0
641 <first : feature done=0
641 >first : accepted done
641 <first : feature name=1 myname="NebiyuCheckers_1.2"
641 >first : accepted name
641 >first : accepted myname
641 <first : feature sigint=0 sigterm=0
641 >first : accepted sigint
641 >first : accepted sigterm
641 <first : feature variants="8x8+0_checkers,10x10+0_checkers"
641 >first : accepted variants
641 <first : feature san=0 usermove=1 setboard=1 draw=0 colors=0
641 >first : accepted san
641 >first : accepted usermove
641 >first : accepted setboard
641 >first : accepted draw
641 >first : accepted colors
641 <first : feature smp=0 memory=0 egt="nebiyu"
641 >first : accepted smp
641 >first : accepted memory
641 >first : accepted egt
641 <first : feature option="log -check 0"
641 >first : accepted option
656 <first : feature option="clear_hash -button"
656 >first : accepted option
656 <first : feature option="resign -spin 800 100 30000"
656 >first : accepted option
656 <first : feature option="smp_depth -spin 4 1 10"
656 >first : accepted option
656 <first : feature option="cluster_depth -spin 1 8 16"
656 >first : accepted option
656 <first : feature option="message_poll_nodes -spin 200 10 20000"
656 >first : accepted option
656 <first : feature option="use_iid -check 1"
656 >first : accepted option
656 <first : feature option="use_null_move -check 1"
656 >first : accepted option
656 <first : feature option="use_singular -check 0"
656 >first : accepted option
656 <first : feature option="use_lmr -check 1"
656 >first : accepted option
656 <first : feature option="use_futility -check 0"
672 >first : accepted option
672 <first : feature option="singular_margin -spin 30 0 1000"
672 >first : accepted option
672 <first : feature option="futility_margin -spin 125 0 1000"
672 >first : accepted option
672 <first : feature option="variant -combo 8x8+0_checkers /// 10x10+0_checkers"
672 >first : accepted option
672 <first : feature done=1
672 >first : accepted done
688 >first : new
random
688 >first : variant 10x10+0_checkers
688 >first : force
write FEN 50-move: 0 0 0
e0. p=-4
703 >first : setboard 1p1p1p1p1p/p1p1p1p1p1/1p1p1p1p1p/p1p1p1p1p1/10/10/1P1P1P1P1P/P1P1P1P1P1/1P1P1P1P1P/P1P1P1P1P1 w - - 0 1
703 >first : level 40 5 0
703 >first : post
703 >first : hard
719 <first : setup (P...Q.p...q.) 10x10+0 1p1p1p1p1p/p1p1p1p1p1/1p1p1p1p1p/p1p1p1p1p1/10/10/1P1P1P1P1P/P1P1P1P1P1/1P1P1P1P1P/P1P1P1P1P1 w - - 0 1
4422 >first : force
4438 >first : analyze
4438 <first : 2 0 0 55 j3i4 a6b5
4438 <first : 3 0 0 224 j3i4 i6h5 i2j3
4438 <first : 4 0 0 512 b3c4 e6d5 c4e6 d7f5
4438 <first : 5 10 0 963 b3c4 i6h5 a2b3 e6d5 c4e6 d7f5
4438 <first : 5 10 0 1316 b3c4 i6h5 a2b3 e6d5 c4e6 d7f5
4453 <first : 6 10 0 1584 b3c4 i6h5 a2b3 e6d5 c4e6 d7f5
4453 <first : 6 10 0 2151 b3c4 i6h5 a2b3 e6d5 c4e6 d7f5
4453 <first : 7 10 0 3536 b3c4 i6h5 a2b3 j7i6 f3g4 h5f3 g2e4
4453 <first : 7 10 0 4374 b3c4 i6h5 a2b3 j7i6 f3g4 h5f3 g2e4
4453 <first : 8 -5 0 5934 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 d7f5
4453 <first : 8 -5 1 8807 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 d7f5
4453 <first : 9 -5 1 10746 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 f7d5 c4e6 d7f5
4469 <first : 9 -5 1 17145 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 f7d5 c4e6 d7f5
4469 <first : 10 -5 3 20582 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 f7d5 c4e6 d7f5
4469 <first : 10 -5 3 25339 b3c4 i6h5 a2b3 j7i6 h3g4 e6f5 g4e6 f7d5 c4e6 d7f5
4485 <first : 11 5 4 32185 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4485 <first : 11 5 4 37180 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4500 <first : 12 5 6 46124 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4500 <first : 12 5 6 54780 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4516 <first : 13 5 7 73071 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4547 <first : 13 5 10 91169 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 d3e4 e6f5 c4e6 f5h3 i2g4 f7d5 e4c6 b7d5
4563 <first : 14 0 12 120537 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 b1a2 b7c6 a0b1 a8b7 d3e4 e6f5 c4e6 f5d3 e2c4 f7d5 c4e6 d7f5h3 i2g4
4594 <first : 14 0 15 154120 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 b1a2 b7c6 a0b1 a8b7 d3e4 e6f5 c4e6 f5d3 e2c4 f7d5 c4e6 d7f5h3 i2g4
4641 <first : 15 0 20 193663 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 b1a2 b7c6 a0b1 a8b7 d3e4 e6f5 c4e6 f5d3 e2c4 f7d5 c4e6 d7f5h3 i2g4
4766 <first : 15 0 32 341632 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 b1a2 b7c6 a0b1 a8b7 d3e4 e6f5 c4e6 f5d3 e2c4 f7d5 c4e6 d7f5h3 i2g4
4844 <first : 16 0 39 413051 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 i2h3 g6f5 f3e4 h5f3 e4g6 f7h5 g2e4c6 b7d5 h3g4 h5f3 e2g4
4875 <first : 16 0 43 458167 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 i2h3 g6f5 f3e4 h5f3 e4g6 f7h5 g2e4c6 b7d5 h3g4 h5f3 e2g4
4985 <first : 17 5 54 569850 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 i2h3 b7c6 d3e4 i8j7 h1i2 a8b7 c2d3 j9i8 g4f5 e6g4 h3f5
5063 <first : 17 5 62 657604 b3c4 i6h5 a2b3 j7i6 h3g4 c6d5 i2h3 b7c6 d3e4 i8j7 h1i2 a8b7 c2d3 j9i8 g4f5 e6g4 h3f5
5313 <first : 18 5 87 928420 b3c4 i6h5 a2b3 j7i6 b1a2 c6b5 f3e4 b7c6 a0b1 e6d5 c4e6 f7d5f3 g2e4 a8b7 b3c4 d7e6 a2b3 c8d7
5453 <first : 18 5 100 1069957 b3c4 i6h5 a2b3 j7i6 b1a2 c6b5 f3e4 b7c6 a0b1 e6d5 c4e6 f7d5f3 g2e4 a8b7 b3c4 d7e6 a2b3 c8d7
5781 <first : 19 0 134 1432700 b3c4 i6h5 a2b3 j7i6 b1a2 i8j7 a0b1 j9i8 h3g4 g6f5 b3a4 f5h3 i2g4 i6j5 g4i6 j7h5 f3g4 h5f3 g2e4
6360 <first : 19 0 192 2073745 b3c4 i6h5 a2b3 j7i6 b1a2 i8j7 a0b1 j9i8 h3g4 g6f5 b3a4 f5h3 i2g4 i6j5 g4i6 j7h5 f3g4 h5f3 g2e4
6438 >first : .
6516 <first : stat01: 207 2247181 20 8 9 b3c4
46 46 46 46 46 46 Legality test? d3e4
CoordsToAlgebraic, piece=0 (3,3)-(4,4) - PARTIAL-1=ffffffff
46 46 46 46 46 46 Legality test? d3e4
46 46 46 46 46 46 Legality test? d3e4
Number of pieces of type 0 = 0
TC string = ':40/300'
mps=40 tc=300000 inc=0
MateTest: K=0, my=20, his=20
move: d3e4
, parse: d3e4 (
)
repeat test fmm=1 bmm=0 ep=-4, reps=3
1 ep=-3
0 ep=-4
book hit = (NULL)
6563 >first : usermove 6563 >first : d3e4
Animate 1 t=108392656
Animate 2 t=108392656
6610 <first : nodes = 2347180 <38 qnodes> time = 2172ms nps = 1080653
6610 <first : splits = 0 badsplits = 0
6610 <first : 2 25 0 34 c6d5 e4c6 b7d5
6610 <first : 3 25 0 98 c6d5 e4c6 b7d5
6625 <first : 4 0 0 285 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
6625 <first : 5 0 0 309 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
6625 <first : 5 0 0 376 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
6625 <first : 6 0 0 615 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
6625 <first : 6 0 0 912 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
6625 <first : 7 10 0 1757 i6h5 b3c4 j7i6 h3i4 c6b5 c2d3 b7c6
6625 <first : 7 10 0 2630 i6h5 b3c4 j7i6 h3i4 c6b5 c2d3 b7c6
6641 <first : 8 10 0 3382 i6h5 b3c4 j7i6 h3i4 c6d5 e4c6 b7d5b3 a2c4
6641 <first : 8 10 1 4261 i6h5 b3c4 j7i6 h3i4 c6d5 e4c6 b7d5b3 a2c4
6641 <first : 9 20 1 6080 i6h5 b3c4 j7i6 c2d3 c6d5 e4c6 b7d5b3 a2c4 a8b7
6641 <first : 9 20 1 7178 i6h5 b3c4 j7i6 c2d3 c6d5 e4c6 b7d5b3 a2c4 a8b7
6641 <first : 10 10 1 9594 i6h5 c2d3 j7i6 b3c4 c6d5 e4c6 b7d5b3 a2c4 a8b7 b1c2
6641 <first : 10 10 1 11581 i6h5 c2d3 j7i6 b3c4 c6d5 e4c6 b7d5b3 a2c4 a8b7 b1c2
6656 <first : 11 5 3 21607 i6h5 h3i4 c6b5 c2d3 b7c6 b3c4 e6f5 a2b3 j7i6 i2h3 a8b7
6656 <first : 11 10 4 28407 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 f5e4 f3d5 c6e4
6656 <first : 11 10 4 29998 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 f5e4 f3d5 c6e4
6656 <first : 12 10 4 35044 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 c6d5 e2d3 b7c6 d1e2
6672 <first : 12 10 6 39249 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 c6d5 e2d3 b7c6 d1e2
6672 <first : 13 10 6 47876 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 c6d5 c2d3 f5g4 f3h5 i6g4 h3f5 e6g4 c4e6 d7f5
6688 <first : 13 10 7 56432 g6f5 e4g6 h7f5 j3i4 i8h7 b3c4 j9i8 a2b3 c6d5 c2d3 f5g4 f3h5 i6g4 h3f5 e6g4 c4e6 d7f5
6719 <first : 14 10 10 80794 g6f5 e4g6 h7f5 j3i4 i8h7 f3g4 h9i8 e2d3 a6b5 g2f3 h7g6 d3e4 f5d3 c2e4
6735 <first : 14 10 12 95693 g6f5 e4g6 h7f5 j3i4 i8h7 f3g4 h9i8 e2d3 a6b5 g2f3 h7g6 d3e4 f5d3 c2e4
6797 <first : 15 0 18 175073 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 f3g4 h5f3 e2g4
6860 <first : 15 0 23 233573 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 f3g4 h5f3 e2g4
6875 <first : 16 0 26 260515 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 f3g4 h5f3 e2g4
7047 <first : 16 0 43 463998 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 f3g4 h5f3 e2g4
7094 <first : 17 0 48 508738 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 b3c4 j7i6 a2b3 c6d5
7172 <first : 17 0 56 586088 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 i6h5 h3g4 f5h3 g2i4g6 f7h5 b3c4 j7i6 a2b3 c6d5
7266 <first : 18 10 65 700298 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 d3e4 f5d3 e2c4 i8h7 c4d5 c6e4 f3d5 e6c4 b3d5
7391 <first : 18 10 78 831345 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 d3e4 f5d3 e2c4 i8h7 c4d5 c6e4 f3d5 e6c4 b3d5
7531 <first : 19 0 90 986705 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 a2b3 j7i6 h3g4 f5h3 i2g4 e6f5 g4e6 d7f5
7969 <first : 19 0 135 1493057 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 a2b3 j7i6 h3g4 f5h3 i2g4 e6f5 g4e6 d7f5
8172 <first : 20 10 156 1723521 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 a2b3 j7i6 h3g4 f5h3 i2g4 i8h7 g2h3 e6f5 g4e6 f7d5 c4e6 d7f5
8438 >first : .
8453 <first : stat01: 184 2043375 20 1 9 e6d5
8485 <first : 20 10 187 2064942 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 a2b3 j7i6 h3g4 f5h3 i2g4 i8h7 g2h3 e6f5 g4e6 f7d5 c4e6 d7f5
8813 <first : 21 0 220 2445802 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 h3g4 f5h3 i2g4i6 j7h5 a2b3 i8h7 j1i2 e6d5 c4e6 d7f5
9969 <first : 21 0 335 3751263 g6f5 e4g6 h7f5 c2d3 i8h7 b1c2 j9i8 a0b1 h7g6 b3c4 i6h5 h3g4 f5h3 i2g4i6 j7h5 a2b3 i8h7 j1i2 e6d5 c4e6 d7f5
46 46 46 46 46 46 Legality test? a6b5
CoordsToAlgebraic, piece=22 (0,6)-(1,5) - PARTIAL-1=ffffffff
46 46 46 46 46 46 Legality test? a6b5
46 46 46 46 46 46 Legality test? a6b5
Number of pieces of type 22 = 0
TC string = ':40/300'
mps=40 tc=300000 inc=0
MateTest: K=0, my=20, his=20
move: a6b5
, parse: a6b5 (
)
repeat test fmm=2 bmm=0 ep=-4, reps=3
2 ep=-3
1 ep=-3
0 ep=-4
book hit = (NULL)
10297 >first : usermove 10297 >first : a6b5
Animate 1 t=108396390
Animate 2 t=108396390
10344 <first : nodes = 4143374 <35 qnodes> time = 3734ms nps = 1109634
10344 <first : splits = 0 badsplits = 0
10344 <first : 3 -30 0 334 c2d3 g6f5 e4g6 h7f5
10344 <first : 4 -20 0 625 h3i4 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
10360 <first : 5 -20 0 676 h3i4 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
10360 <first : 5 -20 0 791 h3i4 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
10360 <first : 6 -20 0 925 h3i4 i6h5 e4d5 e6c4 b3d5 c6e4 f3d5
10360 <first : 6 -10 0 1233 c2d3 b7a6 b3c4 g6f5 e4g6 h7f5
10360 <first : 6 -10 0 1653 c2d3 b7a6 b3c4 g6f5 e4g6 h7f5
10360 <first : 7 10 0 2383 c2d3 b7a6 b3c4 i6h5 b1c2 e6d5 c4e6 d7f5
10375 <first : 7 10 0 2636 c2d3 b7a6 b3c4 i6h5 b1c2 e6d5 c4e6 d7f5
10375 <first : 8 0 0 3625 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10375 <first : 8 0 1 4271 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10375 <first : 9 0 1 4996 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10375 <first : 9 0 1 5787 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10375 <first : 10 0 1 7700 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10391 <first : 10 0 1 9014 c2d3 b7a6 b3c4 a8b7 b1c2 b9a8 a2b3 g6f5 e4g6 h7f5
10391 <first : 11 10 3 15927 c2d3 b7a6 b3c4 a8b7 b1c2 g6f5 e4g6 f7h5 a2b3 e6d5 c4e6 d7f5
10391 <first : 11 10 3 18501 c2d3 b7a6 b3c4 a8b7 b1c2 g6f5 e4g6 f7h5 a2b3 e6d5 c4e6 d7f5
10391 <first : 12 10 4 32329 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 f5g4 h3f5 e6g4 f3h5 i6g4
10391 <first : 12 10 4 35577 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 f5g4 h3f5 e6g4 f3h5 i6g4
10406 <first : 13 15 6 47555 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 a8b7 d3c4 b5d3 c2e4g6 f7h5 h3g4
10422 <first : 13 15 7 54595 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 a8b7 d3c4 b5d3 c2e4g6 f7h5 h3g4
10438 <first : 14 15 9 73799 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 a8b7 d3c4 b5d3 c2e4g6 f7h5 f3g4 h5f3 g2e4
10438 >first : .
10453 <first : 14 15 10 85888 c2d3 b7a6 b1c2 g6f5 e4g6 h7f5 a0b1 a8b7 d3c4 b5d3 c2e4g6 f7h5 f3g4 h5f3 g2e4
10453 <first : stat01: 10 85888 14 -1 10 e4d5
10500 <first : 15 0 15 133417 c2d3 b7a6 b1c2 i6h5 b3c4 e6d5 c4e6 f7d5 a0b1 a8b7 h3i4 b5c4 d3b5 a6c4 i2h3
10516 <first : 15 0 17 156461 c2d3 b7a6 b1c2 i6h5 b3c4 e6d5 c4e6 f7d5 a0b1 a8b7 h3i4 b5c4 d3b5 a6c4 i2h3
10563 <first : 16 5 20 199526 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8
10594 <first : 16 5 25 234299 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8
10625 <first : 17 5 28 285120 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8 i0j1
10688 <first : 17 5 34 342497 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8 i0j1
10797 <first : 18 10 45 467191 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 f7e6 b3c4 g8f7 c2b3 h9g8 c4d5 e6c4 b3d5
10875 <first : 18 10 53 562757 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 f7e6 b3c4 g8f7 c2b3 h9g8 c4d5 e6c4 b3d5
11063 <first : 19 10 71 743933 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 f7e6 b3c4 g8f7 c2b3 h9g8 c4d5 e6c4 b3d5
11219 <first : 19 10 87 903912 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 f7e6 b3c4 g8f7 c2b3 h9g8 c4d5 e6c4 b3d5
11531 <first : 20 10 118 1246337 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8 b3a4 f5g4 h3f5 e6g4
11781 <first : 20 10 142 1509789 c2d3 b7a6 b1c2 i6h5 a0b1 a8b7 h3i4 j7i6 i2h3 e6f5 j1i2 d7e6 b3c4 c8d7 a2b3 b9c8 b3a4 f5g4 h3f5 e6g4
46 46 46 46 46 46 Legality test? c2d3
CoordsToAlgebraic, piece=0 (2,2)-(3,3) - PARTIAL-1=ffffffff
46 46 46 46 46 46 Legality test? c2d3
46 46 46 46 46 46 Legality test? c2d3
Number of pieces of type 0 = 0
TC string = ':40/300'
mps=40 tc=300000 inc=0
MateTest: K=0, my=20, his=20
move: c2d3
, parse: c2d3 (
)
repeat test fmm=3 bmm=0 ep=-4, reps=3
3 ep=-3
2 ep=-3
1 ep=-3
0 ep=-4
book hit = (NULL)
11938 >first : usermove 11938 >first : c2d3
Animate 1 t=108398031
Animate 2 t=108398031
12000 <first : nodes = 1753264 <32 qnodes> time = 1656ms nps = 1058734
12016 <first : splits = 0 badsplits = 0
12016 <first : 2 30 0 42 g6f5 e4g6 h7f5
12016 <first : 3 30 0 59 g6f5 e4g6 h7f5
12016 <first : 4 0 0 128 g6f5 e4g6 f7h5 b1c2
12016 <first : 5 -10 1 228 g6f5 e4g6 f7h5 b3c4 b7a6
12016 <first : 5 -10 1 237 g6f5 e4g6 f7h5 b3c4 b7a6
12016 <first : 6 -25 1 348 g6f5 e4g6 f7h5 b3c4 b5a4 d3e4
12031 <first : 6 -20 1 998 g6h5 b3c4 b7a6 b1c2 h5g4 h3f5 e6g4 f3h5 i6g4
12031 <first : 6 0 1 2173 i6h5 h3i4 b7a6 b3c4 e6d5 c4e6 d7f5
12031 <first : 6 0 1 2174 i6h5 h3i4 b7a6 b3c4 e6d5 c4e6 d7f5
12031 <first : 7 -10 1 3241 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12031 <first : 7 -10 1 3495 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12031 <first : 8 -10 1 3903 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12047 <first : 8 -10 1 4483 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12047 <first : 9 -10 1 5568 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12047 <first : 9 -10 1 6191 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12047 <first : 10 -10 1 7913 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12047 <first : 10 -10 1 8601 i6h5 b1c2 j7i6 c0b1 b7a6 e4f5 e6g4 h3f5 g6e4 d3f5
12063 <first : 11 -5 3 14866 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 j1i2 d7e6
12063 <first : 11 -5 3 15514 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 j1i2 d7e6
12063 <first : 12 -15 3 19723 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 j1i2 d7e6 b3c4
12063 <first : 12 -15 4 28530 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 j1i2 d7e6 b3c4
12063 <first : 13 -15 6 33718 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 b3c4 i8j7 a2b3 j9i8
12078 <first : 13 -15 6 40914 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 e6f5 b3c4 i8j7 a2b3 j9i8
12078 <first : 14 -10 7 50181 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6d5 c4e6 d7f5
12078 <first : 14 -10 7 57645 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6d5 c4e6 d7f5
12094 <first : 15 -10 9 70704 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6d5 c4e6 d7f5
12110 <first : 15 -10 11 81760 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6d5 c4e6 d7f5
12125 <first : 16 -15 12 108737 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 f3g4 h5f3d5 c4e6g4
12172 <first : 16 -15 15 136863 i6h5 b1c2 j7i6 h3i4 b7a6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 f3g4 h5f3d5 c4e6g4
12281 <first : 17 -15 28 264861 i6h5 b1c2 j7i6 a0b1 b7a6 h3g4 a8b7 i2h3 e6f5 g4e6 d7f5 h3g4 f5h3 g2i4 f7e6 j1i2 c8d7
12328 <first : 17 -15 32 318195 i6h5 b1c2 j7i6 a0b1 b7a6 h3g4 a8b7 i2h3 e6f5 g4e6 d7f5 h3g4 f5h3 g2i4 f7e6 j1i2 c8d7
12438 >first : .
12516 <first : stat01: 51 531987 18 9 10 i6h5
12531 <first : 18 -5 53 539045 i6h5 b1c2 b7a6 h3i4 j7i6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 i4j5 d7e6 h3g4 f5h3 g2i4
12594 <first : 18 -5 59 618531 i6h5 b1c2 b7a6 h3i4 j7i6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 i4j5 d7e6 h3g4 f5h3 g2i4
12719 <first : 19 -15 71 751477 i6h5 b1c2 b7a6 h3i4 j7i6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 b1a2 d7e6 c0b1 c8d7 c4d5 e6c4 b3d5
13141 <first : 19 -15 114 1241589 i6h5 b1c2 b7a6 h3i4 j7i6 a0b1 a8b7 i2h3 i8j7 b3c4 j9i8 a2b3 e6f5 b1a2 d7e6 c0b1 c8d7 c4d5 e6c4 b3d5
46 46 46 46 46 46 Legality test? c6d5
CoordsToAlgebraic, piece=22 (2,6)-(3,5) - PARTIAL-1=ffffffff
46 46 46 46 46 46 Legality test? c6d5
46 46 46 46 46 46 Legality test? c6d5
Number of pieces of type 22 = 0
TC string = ':40/300'
mps=40 tc=300000 inc=0
MateTest: K=0, my=20, his=20
move: c6d5
, parse: c6d5 (
)
repeat test fmm=4 bmm=0 ep=-4, reps=3
4 ep=-3
3 ep=-3
2 ep=-3
1 ep=-3
0 ep=-4
book hit = (NULL)
13906 >first : usermove 13906 >first : c6d5
Animate 1 t=108400000
Animate 2 t=108400000
13922 <first : nodes = 2031989 <32 qnodes> time = 1906ms nps = 1066101
13922 <first : splits = 0 badsplits = 0
13922 <first : 1 0 0 0 e4c6a4
14438 >first : .
write FEN 50-move: 0 4 0
e0. p=-4
e1. p=-3
e2. p=-3
e3. p=-3
e4. p=-3
CopyTextToClipboard(): lock count 1
CopyTextToClipboard(): lock count 0
CopyTextToClipboard(): err 0 locked 0
46 46 46 46 46 46 Legality test? e4c6
CoordsToAlgebraic, piece=0 (4,4)-(2,6) - PARTIAL-1=ffffffff
46 46 46 46 46 46 Legality test? e4c6
46 46 46 46 46 46 Legality test? e4c6
Number of pieces of type 0 = 0
46 46 46 46 46 46 Legality test? c6a4
CoordsToAlgebraic, piece=0 (2,6)-(0,4) - PARTIAL-1=62
TC string = ':40/300'
mps=40 tc=300000 inc=0
MateTest: K=0, my=18, his=20
move: e4c6,c6a4
, parse: e4c6,a4 (,)
repeat test fmm=5 bmm=0 ep=-4, reps=3
5 ep=-3
4 ep=-3
3 ep=-3
2 ep=-3
1 ep=-3
0 ep=-4
book hit = (NULL)
39828 >first : usermove 39828 >first : e4c6,c6a4
Animate 1 t=108425921
Animate 2 t=108425921
Fatal Error: Error: first chess program (NebiyuCheckers) exited unexpectedly
GameEnds(26, Error: first chess program (NebiyuCheckers) exited unexpectedly, 2)
42453 >first : exit
42453 >first : quit
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Code: Select all

39828 >first &#58; usermove 39828 >first &#58; e4c6,c6a4
Animate 1 t=108425921
Animate 2 t=108425921
Fatal Error&#58; Error&#58; first chess program &#40;NebiyuCheckers&#41; exited unexpectedly
GameEnds&#40;26, Error&#58; first chess program &#40;NebiyuCheckers&#41; exited unexpectedly, 2&#41;
42453 >first &#58; exit
42453 >first &#58; quit
It seems this is a Nebiyu problem. The notation e4c6,c6a4, which is sent to the engine, is the intended syntax for this move.

So it is up to Daniel now.
Rein Halbersma
Posts: 741
Joined: Tue May 22, 2007 11:13 am

Re: WinBoard, exotic version

Post by Rein Halbersma »

hgm wrote:

Code: Select all

39828 >first &#58; usermove 39828 >first &#58; e4c6,c6a4
Animate 1 t=108425921
Animate 2 t=108425921
Fatal Error&#58; Error&#58; first chess program &#40;NebiyuCheckers&#41; exited unexpectedly
GameEnds&#40;26, Error&#58; first chess program &#40;NebiyuCheckers&#41; exited unexpectedly, 2&#41;
42453 >first &#58; exit
42453 >first &#58; quit
It seems this is a Nebiyu problem. The notation e4c6,c6a4, which is sent to the engine, is the intended syntax for this move.

So it is up to Daniel now.
OK thanks for sorting this out so quickly!

@Daniel: your program is nice and plays quite OK (I'm a 10x10 checkers player myself). However, it seems to be missing the "majority capture" rule. When you have the choice of multiple captures, you have to capture the most number of pieces (where pieces and queens count equally). If you could fix this, that would be great!

Rein
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

Hello Rein
I think I have fixed that problem sometime ago, so maybe I forgot to upload a newer version with the fix.
@Daniel: your program is nice and plays quite OK (I'm a 10x10 checkers player myself). However, it seems to be missing the "majority capture" rule. When you have the choice of multiple captures, you have to capture the most number of pieces (where pieces and queens count equally). If you could fix this, that would be great!
I think I have implemented that too. Only the longest captures are tried in the international 10x10 checkers version (the rest are dropped). You probably have an old version so I will upload a new one and let you know. But there are many variants of the rules to be sure.

@HGM
I am thinking that the alien mode could benefit from getting the legal moves from the engine. Winboard can use that to force the human player to make legal moves and also facilitate the move selection. An alien game can send any kind of move and it seems to me the only way to make sure legal moves are played is if winboard gets the list from the engine. I am experimenting with this with Nebiyu. When a user clicks one square, winboard reduces the move list to the subset which have that square, second click reduces it further ... until we are left with one move at which point winboard makes that move automatically.

Daniel