Coiled 1.0 is buggy and loses games in my ratinglist-testrun by making illegal moves, when around 195 moves are played... So, I stopped that testrun. I need a bugfix. I use cutechess-cli for testing.
Example:
[pgn]
[Event "CPU-engine testing"]
[Site "?"]
[Date "2021.10.12"]
[Round "10"]
[White "Chiron 5 x64"]
[Black "Coiled 1.0 x64"]
[Result "1-0"]
[ECO "D36"]
[GameDuration "00:11:54"]
[GameEndTime "2021-10-12T09:00:56.098 Mitteleuropäische Sommerzeit"]
[GameStartTime "2021-10-12T08:49:01.997 Mitteleuropäische Sommerzeit"]
[Opening "QGD"]
[PlyCount "389"]
[Termination "illegal move"]
[TimeControl "180+1"]
[Variation "Exchange, positional line, 6.Qc2"]
1. d4 {book} d5 {book} 2. c4 {book} e6 {book} 3. Nc3 {book} Nf6 {book}
4. cxd5 {book} exd5 {book} 5. Bg5 {book} c6 {book} 6. Qc2 {book} Be7 {book}
7. e3 {book} Nbd7 {book} 8. Bd3 {book} O-O {book} 9. Nge2 {book} Re8 {book}
10. O-O-O {book} b5 {book} 11. Kb1 {-0.07/19 8.8s} a5 {+1.17/17 2.9s}
12. Rhg1 {0.00/20 5.3s} h6 {+1.78/19 2.9s} 13. Bf4 {+0.11/22 3.8s}
Nf8 {+0.91/17 2.9s} 14. f3 {0.00/18 5.0s} Ne6 {+1.34/18 3.0s}
15. Be5 {-0.16/19 9.3s} Nd7 {+2.21/17 3.0s} 16. Bg3 {-0.09/18 4.2s}
Nb6 {+2.73/19 3.0s} 17. Nf4 {-0.15/20 11s} a4 {+4.02/18 3.0s}
18. Nxe6 {+0.30/21 3.2s} Bxe6 {+0.34/21 3.0s} 19. Nxb5 {+0.30/22 3.6s}
cxb5 {+0.88/23 3.0s} 20. Bc7 {0.00/22 5.4s} Qd7 {+1.22/21 3.0s}
21. Bxb6 {0.00/24 3.8s} Rec8 {+1.65/22 3.1s} 22. Bc5 {0.00/21 4.2s}
b4 {+1.86/21 3.1s} 23. Rc1 {-0.10/20 4.6s} b3 {+3.04/19 3.1s}
24. Qd2 {-0.01/21 13s} a3 {+3.60/21 3.1s} 25. axb3 {0.00/20 4.0s}
Rcb8 {+2.16/22 3.1s} 26. Bc2 {0.00/23 3.5s} Bxc5 {+1.56/23 3.2s}
27. dxc5 {-0.43/23 14s} d4 {+2.81/21 3.2s} 28. Qxd4 {0.00/22 3.4s}
Qa7 {+1.70/22 3.2s} 29. c6 {0.00/22 4.5s} axb2 {+2.14/22 3.2s}
30. Qxb2 {0.00/27 3.5s} g6 {+2.28/22 3.2s} 31. Rcd1 {-0.30/22 11s}
Rb6 {+1.69/21 3.3s} 32. Rd4 {-0.51/22 7.0s} Ra6 {+2.08/20 3.3s}
33. Kc1 {-0.25/23 5.2s} Rxc6 {+2.03/20 3.3s} 34. Rgd1 {-0.30/23 4.9s}
Qc7 {+2.73/22 3.4s} 35. R1d2 {0.00/21 2.3s} Rca6 {+3.14/22 3.4s}
36. Kb1 {0.00/23 2.3s} Kh7 {+2.25/23 3.4s} 37. Be4 {0.00/23 2.2s}
R8a7 {+3.58/23 3.5s} 38. Rd8 {-0.26/23 5.3s} Ra1+ {+3.83/25 3.5s}
39. Qxa1 {-0.26/4 0.001s} Rxa1+ {+3.83/25 3.5s} 40. Kxa1 {-0.16/21 1.0s}
Qc3+ {+2.62/24 3.6s} 41. Kb1 {-0.31/24 3.2s} Qxb3+ {+3.68/26 3.6s}
42. Kc1 {-0.31/24 2.4s} Qc3+ {+3.86/24 3.7s} 43. Kb1 {-0.31/23 2.3s} Qxe3 {3.7s}
44. h3 {-0.21/22 2.5s} Bc4 {+4.09/21 3.8s} 45. R8d4 {-0.09/21 5.3s}
Kg7 {+3.94/20 3.8s} 46. Bd5 {-0.20/21 2.9s} Bf1 {+3.78/22 3.9s}
47. f4 {-0.37/21 4.2s} h5 {+4.11/24 3.9s} 48. Kb2 {-0.16/20 2.2s}
h4 {+4.51/23 4.0s} 49. Bb3 {-0.02/21 2.1s} Bb5 {+3.39/25 4.1s}
50. Bd5 {-0.28/22 1.9s} Ba6 {/26 4.2s} 51. Bxf7 {+0.18/22 2.6s}
Bc8 {+0.34/25 4.3s} 52. Bb3 {+0.18/23 1.8s} Qe7 {+0.28/26 4.4s}
53. Rd6 {+0.18/21 4.0s} Qb7 {+0.44/26 4.5s} 54. Ka3 {+0.05/20 3.6s}
Qa8+ {+0.36/29 4.6s} 55. Kb4 {0.00/21 2.9s} Qe4+ {+0.63/25 4.7s}
56. R6d4 {0.00/21 1.5s} Qe7+ {+1.20/22 4.9s} 57. Kc4 {0.00/22 1.5s}
Be6+ {+2.34/23 5.1s} 58. Kc3 {-0.10/24 1.6s} Qa3 {+2.82/26 5.4s}
59. Rb2 {-0.02/20 6.9s} Kh6 {+2.86/23 5.6s} 60. Ra4 {0.00/21 1.2s}
Qc5+ {+2.27/26 6.0s} 61. Bc4 {0.00/21 1.2s} Bd7 {+2.25/23 6.5s}
62. Ra6 {0.00/22 1.2s} Bc8 {+2.14/29 7.2s} 63. Ra4 {0.00/22 1.2s}
Qc6 {+3.00/25 8.4s} 64. Rab4 {0.00/21 1.2s} Bf5 {+2.01/28 11s}
65. Re2 {0.00/19 1.2s} Qc5 {+2.00/27 10s} 66. Ra4 {0.00/22 1.2s}
Qg1 {+2.17/19 1.0s} 67. Ra8 {0.00/23 1.2s} Qc1+ {+2.61/19 1.00s}
68. Kb3 {0.00/24 1.1s} Qd1+ {+2.42/22 0.99s} 69. Kc3 {0.00/29 1.3s}
Qc1+ {+2.57/20 0.99s} 70. Kb3 {0.00/34 1.4s} Qxf4 {+2.07/20 1.00s}
71. Rae8 {0.00/22 1.1s} Qg3+ {+3.29/20 1.00s} 72. Kb4 {0.00/23 1.1s}
Qd6+ {+3.21/23 0.99s} 73. Kc3 {0.00/22 1.1s} Qa3+ {+3.18/20 1.00s}
74. Kd4 {0.00/24 1.1s} Qa1+ {+3.21/20 1.0s} 75. Kc5 {0.00/22 1.1s}
Qa5+ {+3.17/21 0.98s} 76. Kd4 {0.00/24 1.1s} Qa7+ {+3.22/21 0.99s}
77. Kc3 {0.00/26 1.1s} Qa3+ {+3.22/23 0.99s} 78. Kd4 {0.00/45 1.3s}
Qa1+ {+3.09/20 0.99s} 79. Kc5 {0.00/44 1.1s} Qa4 {+2.96/20 0.98s}
80. Rh8+ {0.00/21 1.1s} Kg7 {+3.13/19 0.99s} 81. Rhe8 {0.00/22 1.1s}
Qa7+ {+2.97/21 0.99s} 82. Kb4 {0.00/24 1.1s} Qd4 {+2.77/22 1.00s}
83. R8e7+ {0.00/23 1.1s} Kh6 {+2.95/21 0.99s} 84. Kb3 {0.00/26 1.1s}
Qd1+ {+2.84/21 0.99s} 85. Ka3 {0.00/23 1.1s} Qb1 {+2.95/20 1.00s}
86. R7e5 {0.00/20 1.1s} Qb7 {+3.04/22 0.99s} 87. Bb5 {0.00/23 1.1s}
Qb6 {+2.85/20 0.99s} 88. Bc4 {0.00/24 1.1s} Qb1 {+2.97/21 1.0s}
89. R5e3 {0.00/25 1.1s} Qb8 {+2.70/20 0.99s} 90. Re5 {0.00/24 1.1s}
Bc2 {+2.78/21 0.99s} 91. Re8 {0.00/23 1.1s} Qb1 {+2.71/19 0.99s}
92. Rh8+ {0.00/20 1.0s} Kg5 {+2.74/21 0.99s} 93. Rhe8 {0.00/22 1.1s}
Qa1+ {+2.77/21 0.99s} 94. Kb4 {0.00/23 1.0s} Qa4+ {+2.73/22 1.00s}
95. Kc3 {0.00/23 1.0s} Bf5 {+2.64/21 1.00s} 96. R8e3 {0.00/24 1.0s}
Qa3+ {+2.65/19 0.99s} 97. Kd4 {0.00/26 1.0s} Qa1+ {0.99s} 98. Kc5 {0.00/24 1.0s}
Qa5+ {+2.68/20 1.0s} 99. Bb5 {0.00/24 1.0s} Bd7 {+2.91/18 0.99s}
100. Re5+ {0.00/21 1.0s} Bf5 {+2.77/20 1.0s} 101. Rd5 {0.00/21 1.0s}
Kh6 {+2.81/17 1.0s} 102. Re8 {0.00/20 1.0s} Qa7+ {+2.28/18 0.99s}
103. Kb4 {0.00/21 1.2s} Qg1 {+1.93/18 1.00s} 104. Bc6 {0.00/22 1.0s}
Qb6+ {+2.03/17 0.99s} 105. Bb5 {0.00/24 1.0s} Be6 {+2.30/20 1.0s}
106. Rd2 {0.00/21 1.0s} Qe3 {+1.04/18 0.99s} 107. Red8 {0.00/21 1.1s}
Bf5 {+1.07/18 0.99s} 108. Ka5 {0.00/19 1.6s} Qa7+ {+2.14/17 1.00s}
109. Kb4 {-0.07/20 0.99s} Qe7+ {+1.81/18 0.99s} 110. Ka4 {-0.13/20 1.1s}
Bc2+ {+2.11/19 0.99s} 111. Ka5 {-0.17/20 0.99s} Be4 {+2.20/18 0.99s}
112. R2d4 {-0.17/20 0.99s} Qc5 {+0.74/16 0.99s} 113. R8d6 {-0.17/19 1.0s}
Kh5 {+1.17/18 0.99s} 114. Rd7 {0.00/20 0.99s} Bc6 {+1.69/19 1.00s}
115. Rh7+ {0.00/20 0.99s} Kg5 {+0.70/20 0.99s} 116. Rb4 {0.00/21 0.99s}
Bd5 {+1.07/19 1.00s} 117. Rbxh4 {0.00/20 1.1s} Qc3+ {+1.02/18 0.99s}
118. Kb6 {0.00/21 0.99s} Qf6+ {+1.07/18 1.00s} 119. Ka5 {0.00/22 0.99s}
Qd8+ {0.99s} 120. Kb4 {0.00/21 0.98s} Be6 {+1.33/18 1.00s}
121. Kc5 {-0.11/18 1.6s} Qf8+ {+1.54/18 1.00s} 122. Kc6 {-0.16/20 2.4s}
Qf2 {+0.95/18 0.99s} 123. Kd6 {0.00/21 1.0s} Kf6 {+1.45/17 0.99s}
124. Bc6 {0.00/20 0.91s} Bg8 {+1.71/16 0.99s} 125. Rh8 {0.00/22 0.92s}
Qg3+ {+0.78/17 1.0s} 126. Kc5 {0.00/22 0.91s} Qe3+ {+0.76/18 0.99s}
127. Kb5 {0.00/24 0.92s} Qd3+ {+0.59/18 1.00s} 128. Ka5 {0.00/23 0.92s}
Bc4 {+0.78/18 1.00s} 129. R4h7 {0.00/19 0.95s} Qd6 {+0.66/16 1.0s}
130. Kb6 {0.00/21 0.93s} Bd5 {+0.83/16 0.99s} 131. Rc7 {0.00/20 0.93s}
Qb4+ {+1.26/17 0.99s} 132. Ka6 {0.00/21 0.93s} Qc5 {+0.90/17 0.98s}
133. Rhc8 {+0.10/17 0.93s} Be6 {+0.93/18 0.99s} 134. Rd8 {+0.75/19 1.6s}
Kg5 {+0.46/15 0.99s} 135. Kb7 {+0.75/17 2.8s} Qb4+ {+0.19/18 0.99s}
136. Ka7 {+0.21/18 0.85s} Qa5+ {+0.01/19 1.00s} 137. Kb8 {+0.12/18 0.86s}
Qa1 {-0.01/20 1.0s} 138. Ra7 {+0.58/17 2.3s} Qf6 {+0.17/17 0.99s}
139. Re8 {+0.30/19 1.8s} Bxh3 {+0.23/16 0.99s} 140. Rc7 {0.00/20 0.81s}
Bf5 {+1.31/18 0.99s} 141. Kb7 {0.00/23 0.93s} Qb2+ {+1.21/19 1.0s}
142. Ka7 {0.00/23 0.81s} Qb4 {+0.75/17 0.99s} 143. Rd8 {0.00/23 0.80s}
Kh6 {+0.52/19 1.00s} 144. Bb7 {0.00/19 0.80s} Qa3+ {+0.73/21 0.99s}
145. Kb8 {0.00/25 0.81s} Qb2 {+0.57/20 0.99s} 146. Re7 {0.00/22 0.82s}
Qf6 {+0.80/20 0.99s} 147. Ree8 {0.00/21 0.96s} Qb6 {+1.80/23 0.99s}
148. Rd5 {0.00/22 0.83s} Be6 {1.0s} 149. Rd3 {0.00/24 0.84s}
Bc4 {+0.33/18 1.00s} 150. Rd7 {0.00/20 0.91s} Qb5 {1.0s}
151. Rh8+ {0.00/20 1.4s} Kg5 {+0.29/20 0.99s} 152. Rd6 {0.00/23 0.83s}
Qe5 {1.00s} 153. Rd8 {0.00/25 0.47s} Kh6 {+0.17/17 0.99s}
154. Kc7 {0.00/23 0.85s} Be6 {+0.33/19 0.99s} 155. Kb6 {+0.49/20 0.86s}
Qb2+ {+0.18/20 1.00s} 156. Ka7 {+0.31/18 0.87s} Qc3 {+0.09/21 1.0s}
157. Rd1 {+0.22/21 1.5s} Qc7 {+0.09/20 0.99s} 158. Ka8 {+0.22/21 0.99s}
Bc4 {+0.10/21 0.98s} 159. R8d6 {+0.29/21 0.85s} Qa5+ {+0.09/18 1.00s}
160. Kb8 {+0.29/22 0.30s} Qe5 {+0.04/21 0.99s} 161. Rd4 {+0.29/21 0.88s}
Be6 {+0.09/19 0.99s} 162. Bc6 {+0.22/22 0.89s} Bf5 {+0.10/21 1.0s}
163. Kb7 {+0.32/21 2.2s} Qe3 {+0.10/22 1.0s} 164. Kc7 {+0.15/21 1.5s}
Qa3 {+0.10/20 0.99s} 165. Rh4+ {+0.24/19 1.2s} Kg7 {+0.10/22 1.0s}
166. Ra4 {+0.24/19 0.82s} Qe3 {+0.09/20 1.00s} 167. Rdd4 {+0.14/20 1.4s}
Qe5+ {+0.09/17 0.99s} 168. Kb6 {+0.14/19 0.81s} Qb8+ {+0.24/18 1.00s}
169. Bb7 {+0.14/20 0.82s} Qg3 {+0.21/20 1.0s} 170. Rac4 {+0.14/20 0.83s}
Qe5 {+0.16/20 0.99s} 171. Rb4 {+0.14/19 2.0s} Qe3 {+0.16/19 0.99s}
172. Bc6 {+0.14/21 1.3s} Kh6 {+0.20/20 1.00s} 173. Bd5 {0.00/21 0.85s}
Bd3 {+0.24/19 0.99s} 174. Bf3 {0.00/21 1.2s} Bf1 {+0.29/16 0.99s}
175. Kc6 {0.00/20 0.78s} Qe6+ {+0.32/19 1.00s} 176. Kb7 {0.00/22 0.79s}
Qf7+ {+0.33/18 1.0s} 177. Kb6 {0.00/23 0.80s} Qf8 {+0.32/18 0.99s}
178. Bc6 {0.00/21 1.2s} Qf2 {+0.48/18 1.00s} 179. g4 {0.00/19 0.80s}
Be2 {+0.58/19 1.2s} 180. Kb7 {0.00/22 0.80s} Qf6 {+0.66/19 0.99s}
181. Ra4 {0.00/21 0.81s} Qe5 {+0.77/18 0.99s} 182. Re4 {0.00/21 0.82s}
Qb2+ {+0.28/17 0.99s} 183. Kc8 {0.00/22 0.82s} Bf3 {+0.81/17 1.00s}
184. Rec4 {0.00/23 0.83s} Bd1 {+0.47/20 0.99s} 185. Rab4 {0.00/20 0.85s}
Qg7 {+0.81/19 0.98s} 186. Rf4 {0.00/18 0.84s} Be2 {1.00s}
187. Ra4 {0.00/21 0.94s} Qe7 {+0.93/19 0.99s} 188. Rad4 {0.00/21 0.85s}
Ba6+ {+0.88/19 0.99s} 189. Kb8 {0.00/22 0.86s} Qe5+ {+0.87/22 0.99s}
190. Ka7 {0.00/23 0.86s} Bd3 {+0.99/21 0.99s} 191. Rb4 {0.00/22 0.87s}
Qc7+ {+1.02/19 1.0s} 192. Bb7 {0.00/28 0.37s} Qa5+ {+0.85/21 0.99s}
193. Kb8 {0.00/31 0.48s} Qe5+ {+1.02/20 0.99s} 194. Kc8 {0.00/25 0.92s}
Qc5+ {+1.42/20 0.99s}
195. Kb8 {0.00/32 0.92s, Black makes an illegal move: b1a1} 1-0
[/pgn]
Coiled 1.0 makes illegal moves
Moderator: Ras
-
pohl4711
- Posts: 2848
- Joined: Sat Sep 03, 2011 7:25 am
- Location: Berlin, Germany
- Full name: Stefan Pohl
-
Brunetti
- Posts: 424
- Joined: Tue Dec 08, 2009 1:37 pm
- Location: Milan, Italy
- Full name: Alex Brunetti
-
pohl4711
- Posts: 2848
- Joined: Sat Sep 03, 2011 7:25 am
- Location: Berlin, Germany
- Full name: Stefan Pohl
Re: Coiled 1.0 makes illegal moves
I had 6 in around 300 games
-
amanjpro
- Posts: 883
- Joined: Sat Mar 13, 2021 1:47 am
- Full name: Amanj Sherwany
Re: Coiled 1.0 makes illegal moves
Your time control is longer, so it is more chance to hit 195 move mark perhaps
-
Bmark
- Posts: 28
- Joined: Wed Aug 14, 2013 5:24 am
- Location: Spain
Re: Coiled 1.0 makes illegal moves
Hello pohl4711 and Brunetti.
Thanks for posting the bug, as I am doing well for repairing and improving Coiled.
The movement generation tests that are in https://github.com/Oscar-Gavira/Coiled/ ... test/perft surpasses them. Both in Standard and Chess960 state.
So I imagine it would be a flaw in the rules 50 moves, triple repetition with continuous check ...
Can you pass me these games privately to verify and debug the bug?
Greetings
Thanks for posting the bug, as I am doing well for repairing and improving Coiled.
The movement generation tests that are in https://github.com/Oscar-Gavira/Coiled/ ... test/perft surpasses them. Both in Standard and Chess960 state.
So I imagine it would be a flaw in the rules 50 moves, triple repetition with continuous check ...
Can you pass me these games privately to verify and debug the bug?
Greetings
-
RubiChess
- Posts: 652
- Joined: Fri Mar 30, 2018 7:20 am
- Full name: Andreas Matthies
Re: Coiled 1.0 makes illegal moves
If the bug is constantly triggered after ~190 moves, some move buffer is probably full.
When reading the moves list from UCI position command you should throw away all moves before last move that resets the halfmove counter as they are not relevant. So you have at most 99 plies to remember regardless how long the game goes.
Regards, Andreas
When reading the moves list from UCI position command you should throw away all moves before last move that resets the halfmove counter as they are not relevant. So you have at most 99 plies to remember regardless how long the game goes.
Regards, Andreas
-
Brunetti
- Posts: 424
- Joined: Tue Dec 08, 2009 1:37 pm
- Location: Milan, Italy
- Full name: Alex Brunetti
-
Bmark
- Posts: 28
- Joined: Wed Aug 14, 2013 5:24 am
- Location: Spain
Re: Coiled 1.0 makes illegal moves
Apparently it is a buffer failure. As RubiChess comments. Well, the Perft works.
See if I fix it soon.
I already see the attached file on github, thanks Brunetti
See if I fix it soon.
I already see the attached file on github, thanks Brunetti
-
Odd Gunnar Malin
- Posts: 310
- Joined: Wed Mar 08, 2006 9:59 pm
- Location: Norway, Vads?
- Full name: Odd Gunnar Malin
Re: Coiled 1.0 makes illegal moves
Where would i be best to do this. I was thinking that this i a job for the GUI, but maybe I'm wrong here. I'm working on a GUI and was thinking of shorten the list before sending it to the engine, would this be a problem for any engines?RubiChess wrote: ↑Tue Oct 12, 2021 2:39 pm If the bug is constantly triggered after ~190 moves, some move buffer is probably full.
When reading the moves list from UCI position command you should throw away all moves before last move that resets the halfmove counter as they are not relevant. So you have at most 99 plies to remember regardless how long the game goes.
Regards, Andreas
-
Bmark
- Posts: 28
- Joined: Wed Aug 14, 2013 5:24 am
- Location: Spain
Re: Coiled 1.0 makes illegal moves
Hello Odd Gunnar MalinOdd Gunnar Malin wrote: ↑Tue Oct 12, 2021 4:17 pmWhere would i be best to do this. I was thinking that this i a job for the GUI, but maybe I'm wrong here. I'm working on a GUI and was thinking of shorten the list before sending it to the engine, would this be a problem for any engines?RubiChess wrote: ↑Tue Oct 12, 2021 2:39 pm If the bug is constantly triggered after ~190 moves, some move buffer is probably full.
When reading the moves list from UCI position command you should throw away all moves before last move that resets the halfmove counter as they are not relevant. So you have at most 99 plies to remember regardless how long the game goes.
Regards, Andreas
I would say that it cannot be omitted, nor shortened.
position startpos moves ...
or
position fen (fen) moves ...
The chain of movements cannot be cut, since it is the one that guides to the given position. Either from a starting position or a fen position.
If it is omitted, you do not know where the pieces are located, since you are assuming that:
position startpos / fen is always the same.
and
moves always the same.
Greetings.