WinBoard, exotic version

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

Re: WinBoard, exotic version

Post by Daniel Shawul »

Here is the problem
<000000107328> move P@q5
<000000107485> time 1339
<000000107485> otim 1279
<000000107485> usermove @@@16
Illegal move: @@@16
<000000120297> result 1-0 {White wins on time}
I am getting an illegal pass move @@@16. This only happened on 19x19 board. Nebiyu sent @@@@
User avatar
hgm
Posts: 27811
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: WinBoard, exotic version

Post by hgm »

Argh! The @=16 problem in a to-square after all... But I guess this is easily fixed, as the case is recognizable by that the files are also @.

Edit: OK, should be fixed now!
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

It finished the game so it works now.
You must be tired by now but here is another small issue.
Copying position on 19x19 crashes. I guess the buffer of the fen was not enough. I had to increase mine from 256 to 512 to stop the crashing..
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

Nebiyu 1.41 uploaded with new coloring scheme and now also works on big board.

Reminders:

a) automatic holding space allocation

b) crash when copying FEN
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

OK, I uploaded a version that fixed the coords display. I don'tuse doubledigits, though; that would take too much space. So it displays only the units digit, (but correctly, this time), which should not lead to any confusion.

Note that the ultima font contains a character that is a pure circle, which could be used for rendering Go stones.

When we are all done, shall I make an installer package that bundles WinBoard-Alien with Nebiyu?
I didn't see this before.
Yes please make installer package.

I will try to use the pure circle font for go and reversi. But you are better than me at handling fonts.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

ust for your convenience, see below for the impact of duplicate capture removal. The column "leafs" is the one to watch (I use quasi-UCI output for my perft routine, I use hashing with full positions as keys, and I count nps the same as during the search, so not equal to leafs per second). The difference for the initial position is tiny, but it is standard practice for international draughts. The reason? Some people have constructed positions in which a king can capture 14 men in >500 different ways. This will crash a program with fixed-size move list!
Oh that is serious then. My move list size is at 532 currently. I could not think of an easy way to check for duplicates at the time I implemented it. For captures of length 4, I may have to check 4! permutation max. Now that I know it will crash my program, I will dig in a little bit.

Btw is there a checkers tournament that I can join my program in? I would love to get my butt kicked .

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

Re: WinBoard, exotic version

Post by hgm »

The holdngs problem should be solved now. Apart from holdingsSize, I also had to set holdingsWidth (to 2 or 0). Normally InitPosition does this, based on holdingsSize being non-zero, but I was by-passing that here.

I don't understand the FEN-paste problem.The FEN is handed to WinBoard by a system clipboard routine in allocated memory, so it cannot possibly be too small. WinBoard just frees the memory after it is done parsing the FEN. The clipboard can contain entire games. Do you have an explicit example of a FEN that causes a crash on pasting?
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

On 19x19 go board, I tried to "copy position" after 50 or so moves are made and it crashed multiple times.
It seems to crash on pasting too. Try this very long fen on 19x19 go

FEN:

p1pp1p1p1p1pppp1pp1/ppp1p1p1PPp1pp1pp1p/p1ppppPPPp1pppp1pp1/pp1ppPPPppppp1ppp1p/p1pp1pPPPPp1pppp1p1/1pppppP1PPpp1pp1ppp/p1pPPPPpPPp1ppppPpp/1ppPPPPpPppp1ppPPPp/p1ppPPPPppppp1pPPPP/1p1pppPPPpp1pppPPP1/p1p1pppPPPpppPpPPPp/1p1p1pPPPPpPPPPPPPp/ppp1pp1pPPPPpppPpPp/1p1pp1p1pPPp1p1ppp1/p1pp1ppp1pppppppp1p/1p1ppp1pp1ppp1p1pp1/p1p1pppp1ppp1p1p1pp/1p1p1p1ppp1pppp1p1p/ppppp1p1pppppp1p1p1 b - - 0 224

Or any position towards the end of this game.
It can load the game with no problems which is good news.
Only pasting and copying are problematic

Code: Select all

&#91;Event "Computer Chess Game"&#93;
&#91;Site "CEE-3624-AB52"&#93;
&#91;Date "2011.06.27"&#93;
&#91;Round "-"&#93;
&#91;White "NebiyuGo_1.41"&#93;
&#91;Black "NebiyuGo_1.41"&#93;
&#91;Result "*"&#93;
&#91;TimeControl "240/60"&#93;
&#91;Variant "go"&#93;
&#91;FEN "19/19/19/19/19/19/19/19/19/19/19/19/19/19/19/19/19/19/19 w - - 0 1"&#93;
&#91;SetUp "1"&#93;

&#123;--------------
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
white to play
--------------&#125;
1. P@c15 P@e16 2. P@c14 P@c16 3. P@b16 P@b17 4. P@d16 P@c17 5. P@c9 P@d15
6. P@c13 P@c11 7. P@d17 P@c12 8. P@e10 P@b15 9. P@d14 P@e15 10. P@f11 P@e11
11. P@d12 P@e13 12. P@e12 P@c10 13. P@d11 P@e6 14. P@d6 P@d5 15. P@d4 P@c0
16. P@c5 P@e5 17. P@h8 P@c6 18. P@g11 P@d7 19. P@b14 P@i15 20. P@a16 P@f16
21. P@g12 P@k14 22. P@k16 P@q17 23. P@p16 P@a15 24. P@o14 P@o11 25. P@n15
P@a17 26. P@h16 P@e17 27. P@j13 P@d18 28. P@b18 P@d13 29. P@f15 P@f14 30.
P@g15 P@c18 31. P@e14 P@f13 32. P@i16 P@b13 33. P@g13 P@d16 34. P@i9 P@c4
35. P@f12 P@a14 36. P@b5 P@d3 37. P@d2 P@i5 38. P@c3 P@n2 39. P@b4 P@l3 40.
P@l2 P@e3 41. P@e4 P@c2 42. P@c1 P@e2 43. P@b2 P@a2 44. P@a1 P@h3 45. P@a3
P@d1 46. P@e1 P@d0 47. P@c2 P@a18 48. P@a4 P@i10 49. P@l10 P@f4 50. P@f3
P@f2 51. P@g2 P@c4 52. P@g3 P@h2 53. P@q2 P@d4 54. P@e0 P@b0 55. P@b1 P@f1
56. P@g1 P@h1 57. P@i1 P@j2 58. P@f0 P@g0 59. P@o2 P@m4 60. P@l4 P@l5 61.
P@k3 P@m3 62. P@n3 P@k4 63. P@m2 P@n1 64. P@q7 P@o3 65. P@p3 P@o4 66. P@o5
P@n4 67. P@n5 P@o1 68. P@p2 P@q1 69. P@q5 P@k2 70. P@p4 P@g4 71. P@j3 P@j4
72. P@j5 P@j6 73. P@n8 P@o8 74. P@o7 P@r10 75. P@q10 P@q11 76. P@r11 P@r13
77. P@q12 P@r12 78. P@p11 P@i3 79. P@p8 P@o9 80. P@k5 P@m9 81. P@k6 P@n13
82. P@j7 P@q15 83. P@q16 P@k7 84. P@l7 P@m8 85. P@l6 P@k8 86. P@m5 P@n11
87. P@i6 P@e9 88. P@d9 P@j16 89. P@j17 P@j15 90. P@k15 P@n12 91. P@r9 P@o12
92. P@l4 P@f3 93. P@s10 P@m16 94. P@i17 P@m15 95. P@l11 P@n9 96. P@n7 P@n6
97. P@g7 P@l1 98. P@q9 P@l5 99. P@m1 P@q4 100. P@l4 P@m12 101. P@n14 P@l5
102. P@j12 P@j11 103. P@m0 P@l0 104. P@r7 P@s7 105. P@l4 P@k3 106. P@h10
P@k12 107. P@p13 P@q13 108. P@r10 P@l5 109. P@l9 P@l8 110. P@k11 P@n0 111.
P@r4 P@p12 112. P@q11 P@p14 113. P@o13 P@n16 114. P@l14 P@m14 115. P@o15
P@q3 116. P@s16 P@o16 117. P@p10 P@p15 118. P@n10 P@l4 119. P@g9 P@r3 120.
P@p7 P@r5 121. P@h7 P@s4 122. P@j6 P@q6 123. P@n15 P@p5 124. P@p13 P@o13
125. P@l12 P@k13 126. P@c7 P@c8 127. P@g14 P@b7 128. P@a7 P@a6 129. P@h0
P@i0 130. P@e7 P@a8 131. P@c15 P@c14 132. P@n17 P@o15 133. P@m13 P@l13 134.
P@n14 P@o14 135. P@m7 P@l15 136. P@n15 P@n14 137. P@q14 P@r14 138. P@s14
P@r16 139. P@s12 P@p17 140. P@o17 P@l16 141. P@l17 P@k17 142. P@g16 P@m17
143. P@p16 P@l18 144. P@k16 P@k15 145. P@j14 P@q16 146. P@r15 P@s15 147.
P@r17 P@s17 148. P@q18 P@r18 149. P@p18 P@o18 150. P@n18 P@m18 151. P@n17
P@s13 152. P@o17 P@n18 153. P@o17 P@n17 154. P@p18 P@q18 155. P@k18 P@s11
156. P@q8 P@j18 157. P@h15 P@s12 158. P@m11 P@o10 159. P@p9 P@m10 160. P@k9
P@j9 161. P@k10 P@j10 162. P@k11 P@k10 163. P@l10 P@l11 164. P@l9 P@k9 165.
P@l9 P@l10 166. P@m2 P@l2 167. P@m1 P@m0 168. P@m2 P@m1 169. P@i2 P@j1 170.
P@i2 P@i1 171. P@g3 P@g2 172. P@f5 P@g5 173. P@i8 P@f6 174. P@i7 P@f7 175.
P@h9 P@e8 176. P@e14 P@d14 177. P@b16 P@a16 178. P@a13 P@a12 179. P@b3 P@m6
180. P@k1 P@o6 181. P@k0 P@j0 182. P@k1 P@k0 183. P@o0 P@p0 184. P@p1 P@r2
185. P@q2 P@p2 186. P@p3 P@p4 187. P@o5 P@n5 188. P@s3 P@s2 189. P@f0 P@e0
190. P@a2 P@a0 191. P@a5 P@b6 192. P@c5 P@b5 193. P@d2 P@c2 194. P@c3 P@b3
195. P@b4 P@a4 196. P@a3 P@a2 197. P@b2 P@b1 198. P@q0 P@r0 199. P@r1 P@s1
200. P@b12 P@b11 201. P@a11 P@a10 202. P@b10 P@b9 203. P@d8 P@d10 204. P@c9
P@d9 205. P@e18 P@f18 206. P@i4 P@h4 207. P@f8 P@f9 208. P@f10 P@g8 209.
P@g10 P@f8 210. P@e11 P@c13 211. P@s5 P@s6 212. P@h5 P@h6 213. P@i11 P@i12
214. P@i13 P@h11 215. P@i14 P@h13 216. P@h14 P@h12 217. P@i11 P@h12 218.
P@f17 P@g17 219. P@g18 P@h18 220. P@j8 P@h11 221. P@i12 P@k11 222. P@r8
P@s8 223. P@r6 P@q5 224. P@p6 P@q2 225. P@h17
*

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

Re: WinBoard, exotic version

Post by hgm »

Ah, I see. It crashed on sending the file to the engine. So the buffer where it prepares the command to send must be too small. (Standard buffer size is 512 bytes in WB.)

I will fix it tomorrow. (It is getting late here.)
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: WinBoard, exotic version

Post by Daniel Shawul »

I will list down bugs here so tommorrow you can finish it:

a) Turning one-click move does both native winboard one click move and those the engine sends by click. It should only use what the engine sends. For example for shogi, a keima (represented by knight) has only the two forward steps of a knight, but one-click move tries to move the keima like a normal knight move as in the following FEN

lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL[-] w - - 0 1

Edit1: Yes this is very serious. It happens with pawns and other pieces too. The winboard native one-click move should be completely turned off when engine has its own.

Edit2: Nebiyu problem: When one-click was off, unambigious moves were not highlighted in nebiyu , so I fixed so that it will send a highlight even when sending clicks. It is uploaded.

Edit3: Winboard one-click problem checkers. Square a1 does not trigger a lift, so one-click doesn't work. But I do get a put even though there were no lifts. I think the problem is probably because a1=0 in your implementation. If I click elsewhere first and click again it works.
<000000093125> variant checkers
setup (P...Q.p...q.) 8x8+0 1p1p1p1p/p1p1p1p1/1p1p1p1p/8/8/P1P1P1P1/1P1P1P1P/P1P1P1P1 w - - 0 1
<000000093125> level 40 1 0
<000000093125> post
<000000093125> hard
<000000093125> easy
<000000093125> force
<000000093125> setboard 1p6/p3p1p1/3p1p2/2p1p3/7P/P1P3P1/3P4/P1P3P1 w - - 0 1
<000000099172> put b2
<000000099172> usermove a1b2
I can replicate this problem on other games too. One-click move not working the first time, but it does the second time.