Duck Chess

Discussion of chess software programming and technical issues.

Moderator: Ras

TonyJH
Posts: 183
Joined: Tue Jun 20, 2006 4:41 am
Location: USA

Re: Duck Chess

Post by TonyJH »

TonyJH wrote: Tue Dec 06, 2022 9:04 pm
MTaktikos wrote: Tue Dec 06, 2022 8:47 pm
https://github.com/ianfab/Fairy-Stockfi ... 1ab763fc02

If you in your corrected FSFDuck code, revert this commit to the former version, probably (hopefully) it will be fully Winboard compatible.
You may be right, but isn't that piece of code only affecting FSF's move output format (to xboard) and not how it parses moves received (from xboard)? Or maybe it affects both, I don't really know without looking further.
Never mind, you're right. Thanks!
MTaktikos
Posts: 59
Joined: Fri Oct 25, 2019 7:58 pm
Full name: Michael Taktikos

Re: Duck Chess

Post by MTaktikos »

TonyJH wrote: Wed Dec 07, 2022 4:17 am
MTaktikos wrote: Tue Dec 06, 2022 8:47 pm revert this commit to the former version, probably (hopefully) it will be fully Winboard compatible.
[...]
you're right. Thanks!
FSFDuck now runs smoothly in the Winboard GUI, thanks a lot, Tony! Will make a PR so that your
commits will be applied in the scr code in github.
Made two tests, for STC 1 min/60 moves a 6-games-match, and for 5 min/40 moves a 4-games match. Both tests ran on AMD 3900x with 20 threads, and 2048 MB

Results:
In STC, TJChessDuck won convincingly 5-1 The good evaluation of TJChess, which prefers Knight over Bishop, allows a fast search speed that works better than the provisorial NNUE of FSFDuck (note that it is a normal chess NNUE, not a dedicated NNUE for Duck Chess)
Here the games:
[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "1"]
[White "TJchessDuck 0.2"]
[Black "Fairy-Stockfish 071222"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.20 1... -0.41"]

1. d4,d6 Nf6,c3 2. Bg5,e4 d5,e3 3. Bxf6,c3 gxf6,e3 4. Nc3,e6 c6,e3 5.
Nf3,e6 Nd7,e3 6. g3,e6 Qb6,b1 7. e4,b5 e5,b1 8. exd5,b5 exd4,e2 9. Qxd4,b5
Ne5,c5 10. Qe4,b5 Bg7,d1 11. Nxe5,b5 fxe5,b1 12. Bc4,b5 Qd4,d3 13. dxc6,d5
Qxc4,d4 14. cxb7,b6 Qxe4,d6 15. Nxe4,e3 Bxb7,d6 16. O-O-O,c6 O-O-O,d7 17.
Kb1,d5 Rhe8,d7 18. g4,d5 Bf8,d2 19. Ng5,d5 f6,e4 20. Rxd8,d5 Kxd8,e7 21.
Ne4,d5 Be7,f3 22. Rd1,c6 Kc7,f3 23. Kc1,c6 Rf8,f3 24. Rd5,c6 Rg8,g5 25.
f3,c6 h5,g5 26. h3,c6 Rh8,g5 27. Kd2,c6 hxg4,c5 28. hxg4,c6 Rh2,d1 29.
Kd3,c6 Rh3,g5 30. Ke3,c6 Rh1,g5 31. b3,c6 Rg1,g5 32. c4,c6 Ra1,g5 33.
Nc3,c6 Bb4,e4 34. Nb5,b6 Kb8,c6 35. Rd8,c8 Ka8,b8 36. Nc7,c8 e4,b1 37. Nxa8
{White wins} 1-0

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "2"]
[White "Fairy-Stockfish 071222"]
[Black "TJchessDuck 0.2"]
[Result "0-1"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.28 1... -0.31"]

1. d4,d5 e6,e3 2. g3,d5 Nc6,f3 3. e4,d6 Nf6,e5 4. f3,d6 a6,e3 5. c3,d6
h6,d5 6. Bg2,d6 b6,d5 7. Nh3,a5 d5,e5 8. Nf2,a5 Bd6,e5 9. Nd2,g8 e5,f4 10.
dxe5,e3 Nxe5,f4 11. exd5,f8 Nxd5,f4 12. Nde4,d2 Be6,f4 13. Qe2,f8 f5,f4 14.
Nxd6,d7 cxd6,f4 15. c4,b4 Nf6,f4 16. b3,b5 Qc7,f4 17. Bb2,f8 O-O-O,d4 18.
f4,c6 Ng6,e5 19. O-O,f8 Kd7,c3 20. Rfe1,e8 h5,c3 21. h4,e7 a5,c3 22.
Rac1,e8 Ne7,c3 23. a3,e8 Qc5,d4 24. b4,d3 axb4,d4 25. axb4,d3 Qxb4,c3 26.
Nd3,c6 Qb3,c3 27. Qd2,e4 Bxc4,c3 28. Ne5,d3 dxe5,d4 29. Rc3,e8 Qb5,d5 30.
Rxe5,e4 Bd5,f3 31. Rc7,e6 Kxc7,d7 32. Rxe7,b8 Rd7,d4 33. Qe2,c4 Qxb2,c2 34.
Qe5,d4 Qb1,d6 35. Bf1,c8 Rxe7,d6 36. Qxe7,d7 Kc6,f7 37. Qd8,g8 Qe4,e8 38.
Qc8,f8 Rg8,c7 39. Qa6,d4 Qe3,g2 40. Kh2,f2 Ng4,h3 41. Kh1,g2 Qxg3,d3 42.
Bg2,e4 Qh2,b5 43. Bf1,a1 Qxh1
{Black wins} 0-1

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "3"]
[White "TJchessDuck 0.2"]
[Black "Fairy-Stockfish 071222"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.24 1... -0.31"]

1. d4,d6 Nf6,c3 2. Bg5,e4 d5,e3 3. Bxf6,c3 exf6,c6 4. e3,d7 c6,e2 5. Nc3,d6
Nd7,e2 6. a3,b6 f5,e2 7. Nf3,f6 Bd6,f8 8. Bd3,e4 g6,e2 9. O-O,b6 O-O,e2 10.
a4,f6 Re8,e2 11. Qd2,c7 Nf6,e2 12. b3,e6 Ne4,e1 13. Bxe4,h4 fxe4,f6 14.
Ne1,d7 Ba3,a2 15. f3,b2 exf3,a2 16. Nxf3,b2 Bd6,e4 17. Ne2,d7 f6,c3 18.
Kf2,d7 a5,c4 19. h3,d7 b6,c3 20. Qd3,d7 Ba6,c4 21. g3,b5 Qc8,c3 22. Rh1,c4
g5,c3 23. Kg2,b5 Bb4,c3 24. Rhf1,c4 Re7,c3 25. Rfb1,c4 h5,c3 26. Qg6,g7
Kf8,f7 27. Qxf6,b5 Rxe3,f7 28. Kf2,b5 Rxe2,f7 29. Kxe2,b5 Be7,f7 30. Qh6,b5
Kg8,f2 31. Kd1,d7 Qf8,g6 32. Qxh5,f6 Bb4,g6 33. Nxg5,f6 Re8,g6 34. Qh7,f6
b5,c1
{White wins} 1-0

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "4"]
[White "Fairy-Stockfish 071222"]
[Black "TJchessDuck 0.2"]
[Result "0-1"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.36 1... -0.13"]

1. d4,e3 d5,d2 2. e3,e6 Qd6,c3 3. Nf3,e6 g6,c3 4. Be2,g7 Nf6,c3 5. O-O,g7
Bg4,e5 6. c4,c6 Bxf3,e5 7. Bxf3,c6 e6,c3 8. Qb3,c6 b6,g8 9. Nc3,c6 Bh6,b5
10. cxd5,e4 exd5,c4 11. e4,e3 dxe4,g7 12. Bxh6,b5 exf3,g7 13. Nb5,d7 Qc6,e1
14. d5,b4 Nxd5,c4 15. Rfe1,g8 Kd8,g7 16. Rad1,b7 Nd7,d4 17. Bg5,c8 f6,d4
18. Qc4,c5 Nb8,d4 19. Bxf6,c5 Nxf6,d6 20. Qf7,d4 Nbd7,e6 21. Nd4,d5 Qa4,c8
22. b3,c4 Qxa2,c8 23. Ra1,g8 Qb2,c8 24. Reb1,c3 Qd2,c8 25. Qg7,g8 Qxd4,c3
26. Qxh8,d5 fxg2,e8 27. Ra4,d5 Qe5,e8 28. Raa1,f5 Ke7,g8 29. Qg7,e8 Ke6,g8
30. Re1,e2 Qe4,e3 31. Rad1,e5 Qf3,e3 32. Qh8,b8 Ne4,e3 33. Qxa8,e5 Qxf2,e3
34. h3,a1 Qxg1
{Black wins} 0-1

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "5"]
[White "TJchessDuck 0.2"]
[Black "Fairy-Stockfish 071222"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.18 1... -0.25"]

1. d4,d5 Nf6,c3 2. Bg5,e4 d5,e3 3. Bxf6,e6 exf6,e3 4. a3,e6 c6,e3 5. Nc3,d7
Bd6,e3 6. Nf3,d7 O-O,e3 7. g3,d7 Re8,e3 8. Bh3,d7 g6,f5 9. e3,d7 f5,g2 10.
O-O,d7 a5,g2 11. Qe2,d7 b6,e1 12. Bg2,b7 Nd7,d1 13. Nd2,f3 Nf6,d1 14.
Bf3,e6 h5,h4 15. Qd3,e6 Ba6,b5 16. h4,c4 Qc8,e2 17. Nb3,c4 Bc7,e1 18.
Kg2,c4 Re7,d1 19. Nd2,c4 Kg7,e2 20. Rfe1,b5 Kg8,b3 21. Reb1,b5 Ne4,b4 22.
Qe2,b5 Re8,d1 23. Bxe4,b5 fxe4,d1 24. f3,b5 f5,d1 25. Qf2,d6 Re7,f4 26.
b3,d6 Qe6,f4 27. b4,d6 Rf8,f4 28. Rb2,d6 a4,f4 29. Nxa4,b5 exf3,c3 30.
Nxf3,b5 Qf6,c3 31. Kh1,b5 Re6,c3 32. Kh2,b5 Re4,c3 33. Rd1,b5 Rg4,c3 34.
Ne5,d6 g5,d7 35. Nxg4,c3 fxg4,f4 36. hxg5,f3 Qxg5,c3 37. Rbb1,f4 Bb5,c3 38.
Nb2,f4 Rf6,g1 39. Ra1,f4 h4,g1 40. a4,f4 Ba6,g1 41. gxh4,f4 Rh6,g1 42.
Kg2,g3 Rxh4,f4 43. Rh1,g3 Rh3,h2 44. Rae1,g3 Bd6,h2 45. c3,g3 Kh8,h2 46.
Qf8,e7 Qh4,g8 47. Qe8,g3 Kg7,h2 48. Qd7,g3 Kh8,g8 49. Reg1,g3 Bb8,h2 50.
Qxc6,g3 Kg7,a1 51. Qxd5,g3 Be2,c6 52. Kf2,g3 Bf3,h2 53. Qb5,g3 Rxh1,c6 54.
Rxh1,g3 Qxh1,f5 55. Qxb6,g2 Qh2,h1 56. Qc5,g2 Bd6,f6 57. Qg5,g2 Kf7,d3 58.
Nc4,g2 Be7,e5 59. Qf5,g2 Bh4,f6 60. Kf1,g2 Qh1,f6 61. e4,g1 Ke7,b2 62.
Qh7,g1 g3,f7 63. Ne3,g1 Kd8,h8 64. Qg8,g1 Kc7,g7 65. Qf7,g1 Kd8,f6 66.
Qg8,g1 Kd7,h7 67. Qg7,g1 Kc8,h8 68. Qg8,g1 Kd7,g7 69. Qh7,g1 Ke6,h6 70.
Qg6,g1 Kd7,g7 71. Qh7,g1 Ke6,h6 72. Qg6,g1 Bxe4,f6 73. Ke2,f5 Qf3,f6 74.
Kd2,f5 Ke7,g7 75. Qg4,g2 Qf2,e2 76. Kd1,f3 Qxe3,g2 77. Qxh4,g4 g2,g5 78.
d5,g1 Kd7,c4 79. Qg4,f3 Kd6,g3 80. Qe6,c7 g1=Q,a1 81. Qxd6
{White wins} 1-0

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "6"]
[White "Fairy-Stockfish 071222"]
[Black "TJchessDuck 0.2"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.51 1... -0.37"]

1. d4,d5 e6,e3 2. c4,d6 Nc6,d5 3. Nc3,d6 Nxd4,d2 4. e3,c6 Nf5,e4 5. g3,d6
b6,e4 6. Bg2,b7 Bb4,e4 7. Nge2,b7 Bxc3,e4 8. Nxc3,b7 Nf6,e4 9. b3,b7 d6,e4
10. Bb2,b7 Bd7,e4 11. Qf3,c6 Ne7,e4 12. g4,c6 h6,e4 13. h4,c6 Rb8,g5 14.
Qg3,h5 Bc6,g5 15. Bxc6,h5 Nxc6,g5 16. f4,h5 d5,g5 17. O-O-O,h5 Qe7,g5 18.
Qf3,c8 Qc5,g5 19. Na4,d6 Qa5,c3 20. g5,e4 hxg5,h7 21. fxg5,e4 Ne5,c3 22.
gxf6,g8 Nxf3,c3 23. fxg7,g8 Rxh4,f8 24. g8=Q,h2 b5,f8 25. Rxh4,g3 Nxh4,f8
26. Bc3,b4 Qa6,f8 27. Nc5,b6 Qa3,f8 28. Bb2,b4 Qa5,f8 29. cxd5,d7 Qb6,f8
30. Ba3,e7 e5,f8 31. Rf1,c8 Qg6,f8 32. Rg1,g7 Qh6,f8 33. Rg5,g6 Nf3,f8 34.
Rg7,g5 Kd8,e8 35. Rxf7,f4 Qh1,f8 36. Kb2,b7 Ke8,f8 37. Bb4,h4 Nh2,f8 38.
Rxc7,c8 Nf3,f8 39. Ne4,h2 Kd8,f8 40. d6,h2 Qg1,f8 41. Qf7,f2 Qg8,e7 42.
Qxg8,a6 Rb6,f8 43. Qh8,a6 Ng1,f8 44. Qh4,a6 Ne2,g5 45. Ba5,b7 Ke8,g5 46.
Qh5,d8 Kf8,f3 47. Rxa7,h2 Ng3,g8 48. Nxg3,c6 Rb8,g8 49. Qh8,b4 e4,g8 50.
d7,h2 Kf7,d8 51. Qh5,b7 Ke7,f7 52. Qd5,c8 Kd8,c7 53. Nxe4,b4 Rc8,c7 54.
Ka1,b4 Rc2,b6 55. Kb1,h2 Rc7,b7 56. Ra8,d6 b4,b8 57. Nc5,e7 Rc8,c7 58.
Rxc8,e7 Ke8,c7 59. dxe8=Q,d8
{White wins} 1-0

TJChessDuck is the champion in STC Duck Chess, congrats to TonyJH

In the 5 min TC, FSF won 2.5 - 1.5
Although the NNUE slows down the nps of FSF, the scaling of FSF appears to be better, so the more time is given, the better the winning chances of FSF. 5 min perhaps is near the break even point.
Here the games:
Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "1"]
[White "TJchessDuck 0.2"]
[Black "Fairy-Stockfish 071222"]
[Result "0-1"]
[TimeControl "40/300"]
[Variant "duck"]
[Annotator "1. +0.32 1... -0.28"]

1. d4,d6 Nf6,c3 2. Bg5,e4 d5,e3 3. Bxf6,c3 exf6,c6 4. e3,e6 c6,e2 5. a3,e6
Nd7,c3 6. Bd3,e6 Bd6,c4 7. Nf3,c3 g6,c4 8. g4,b6 O-O,c3 9. Nbd2,b6 c5,e2
10. c4,h8 cxd4,e5 11. exd4,b6 Re8,f1 12. cxd5,e7 Nb6,e4 13. Bc4,e6 Nxc4,e7
14. Nxc4,e6 b5,e3 15. Ncd2,e6 Kg7,f1 16. Qe2,e6 Bb7,f1 17. Qxb5,e6 Qd7,c6
18. a4,e4 a6,c6 19. Qa5,e6 Bf4,f1 20. Kd1,e6 Bxd5,d6 21. Re1,e4 Rec8,d6 22.
h3,e4 Bc7,d6 23. Qxa6,a7 Rf8,b5 24. g5,a7 fxg5,b5 25. Nxg5,a7 Bf4,b5 26.
Ngf3,a7 Qxh3,b5 27. Qb7,c6 Bxf3,e4 28. Nxf3,g3 Rab8,c6 29. Qe7,g3 Rxb2,e5
30. Qa3,d2 Qxf3,e3 31. Qxb2,e2 Qd3,d2 32. Kc1,e3 Rc8,e2 33. Kb1,c2 Bd2,d1
34. Rg1,c2 Rb8,b3 35. Qc2,b2 Qxd4,f1 36. Qc7,b7 Qb4,c2 37. Ka2,a3 Ra8,c2
38. Qe5,f6 Kg8,c5 39. Qe8,c8 Rxa4,f8 40. Rab1,a3 Kg7,b2 41. Qe5,a3 Qc4,f6
42. Rb3,a3 Kf8,b2 43. Qd6,a3 Bf4,e7 44. Kb2,e5 Qe2,e7 45. Kb1,e5 Qe4,e7 46.
f3,c2 Qf5,e7 47. Kb2,e5 Kg7,d5 48. Re1,e5 Rc4,d5 49. Rc3,e5 Rd4,d5 50.
Qc6,d2 Be5,b3 51. Rce3,f4 h5,e4 52. Qc5,f4 Bf6,e5 53. Kc1,d5 Qf4,e4 54.
R1e2,h4 Rd8,e4 55. Qc6,d4 h4,e4 56. Qc7,d6 Qc4,c6 57. Rc2,c5 Qf1,d2 58.
Kb2,e5 Qd1,d2 59. Qh2,d4 h3,e2 60. Kb3,d4 Qb1,b2 61. Kc3,e5 Qe1,e2 62.
Kd3,d4 Qd1,d2 63. Kc3,d4 Rc8,b2 64. Kb3,c7 Qb1,b2 65. Ka3,c7 Qxc2,d2 66.
Qxh3,c3 Ra8,b4 67. Re4,a4 Qd3,b4 68. Ka2,a3 Qxf3,g3 69. Qd7,a3 Qxe4,b3 70.
Kb1,d3 Rd8,h3 71. Qb5,d3 Rb8,b7 72. Ka2,b6 Qc2,b2 73. Ka3,b6 Qc3,b3 74.
Ka4,b6 Qc2,b3 75. Ka3,b6 Qc1,b2 76. Ka4,b7 Qf4,b4 77. Kb3,b7 Qg3,a2 78.
Ka4,b6 Qf4,b4 79. Kb3,b7 Rc8,b4 80. Qd3,d7 Qf5,e4 81. Qe3,d5 g5,g4 82.
Kb4,e5 g4,g3 83. Ka4,f3 Qd5,b4 84. Qd3,d4 Qf3,e3 85. Qd2,g3 Rc4,b5 86.
Kb3,c3 Rd4,g3 87. Qc3,d3 g3,e3 88. Kc2,g2 Qxc3,e5 89. Kxc3,g2 Be5,d3 90.
Kb3,g2 f5,f4 91. Kc2,g2 f4,f1 92. Kb3,g2 f3,c4 93. Ka3,f2 g2,b4 94. Kb3,g1
f2,f1 95. Kc3,g1 f1=Q,c4 96. Kb2,c2 Qd3,b3 97. Ka2,c2 Rb4,b3 98. Ka3,c3
Qc4,b3 99. Kb2,e8 Bxb2,a3
{Black wins} 0-1

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "2"]
[White "Fairy-Stockfish 071222"]
[Black "TJchessDuck 0.2"]
[Result "0-1"]
[TimeControl "40/300"]
[Variant "duck"]
[Annotator "1. +0.30 1... -0.23"]

1. d4,d6 e6,e3 2. c4,d6 b6,e3 3. g3,b7 d5,b3 4. cxd5,f6 Qxd5,f3 5. Bg2,e4
Nc6,f3 6. e3,e4 Bb4,f3 7. Bd2,e4 Nf6,f3 8. Bxb4,e4 Nxb4,f3 9. Ne2,e4 Qf5,b7
10. a3,d5 Nc6,e4 11. Nd2,b7 O-O,e4 12. Rc1,b7 Bd7,e4 13. Qa4,e7 Qa5,e4 14.
Qc4,b5 Ne7,c6 15. Nc3,b3 Qh5,c6 16. O-O,e4 Nfd5,f3 17. e4,g5 Nxc3,c2 18.
Qxc3,c8 Bc6,f3 19. Rfe1,b4 Qb5,c4 20. b3,a5 Qg5,f4 21. Nf3,d5 Qh5,e5 22.
d5,g6 exd5,g5 23. Ne5,d4 dxe4,d5 24. Nxc6,c5 Nxc6,c4 25. Bxe4,d8 Qc5,c4 26.
Qd2,d6 Rad8,c4 27. Qf4,d4 Rd6,c4 28. a4,d4 Na5,c2 29. Qh4,h6 f5,c2 30.
Bxf5,d5 h6,c2 31. Be6,c4 Kh7,c2 32. Qe4,h8 g6,c4 33. Qb1,c6 Qb4,c4 34.
Qe4,d4 Nxb3,c4 35. Rb1,d4 Qxa4,c4 36. Bg4,d4 Nc5,e5 37. Qxa4,e2 Nxa4,e5 38.
Ra1,b5 Nc3,a3 39. Re3,d5 Nb5,e4 40. Be2,a5 Nd4,a6 41. Bd3,e4 a5,e6 42.
g4,g7 c5,e6 43. h4,c2 Rf4,f3 44. h5,g7 Rxg4,e4 45. Kf1,f5 gxh5,g6 46.
Rb1,g8 b5,e4 47. Rc1,c4 Kg8,c3 48. f3,f4 Rg7,c4 49. Re8,f7 c4,f8 50. Rd8,d7
Nb3,e8 51. Be4,d7 Rd4,f8 52. Rxd4,f2 Nxd4,f8 53. Kf2,b3 a4,e3 54. Rd1,b3
a3,d3 55. Ra1,a2 c3,c2 56. Rxa3,b4 c2,c1 57. Bxc2,b3 Nxc2,b4 58. Rc3,d4
Nb4,c5 59. f4,b7 Kf7,c4 60. Rh3,g4 Kg6,f3 61. f5,h4 Kg5,f6 62. Rb3,d5
Nc6,b4 63. f6,f7 Kxf6,b4 64. Rh3,g5 Ke5,h4 65. Ke1,d6 Kf4,h4 66. Rc3,e7
b4,c4 67. Rc2,h4 Nd4,c4 68. Rb2,c6 b3,d2 69. Rb1,h4 Rg2,d2 70. Kf1,g3
Rc2,e1 71. Ra1,b1 b2,d8 72. Rb1,g3 Nf3,d2 73. Rxb2,e2 Rxb2,g2 74. Ke2,d2
h4,d3 75. Kd1,c1 h3,h2 76. Kc1,b4 h2,h1 77. Kxb2,c1 Ne5,h1 78. Kc3,f7
h1=Q,g2 79. Kc2,h5 Qc6,d1 80. Kb2,h5 Nd3,d1 81. Kc2,c4 Ke3,b3 82. Kb1,c4
Kd2,a2 83. Ka1,b1 Kc1,a2 84. Kb1,a1 Kxb1
{Black wins} 0-1

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "3"]
[White "TJchessDuck 0.2"]
[Black "Fairy-Stockfish 071222"]
[Result "0-1"]
[TimeControl "40/300"]
[Variant "duck"]
[Annotator "1. +0.24 1... -0.27"]

1. d4,d6 Nf6,c3 2. Bg5,e4 d5,e3 3. Bxf6,c6 exf6,e3 4. a3,e6 c6,e3 5. Nc3,b6
Nd7,e3 6. g3,f5 Bd6,e3 7. Bh3,f5 O-O,e3 8. Bxd7,b6 Bxd7,e3 9. Nf3,e6 Re8,e3
10. Qd3,e6 a5,g1 11. e4,e6 b5,g1 12. exd5,e6 b4,e4 13. axb4,e6 axb4,a4 14.
Ne2,a5 Bf5,e4 15. Qa6,a7 Qb8,b6 16. Kd2,a7 Be4,b6 17. Neg1,a7 Rc8,c7 18.
Qe2,a7 cxd5,a2 19. Rc1,a6 b3,c3 20. cxb3,b7 Ra2,e1 21. Rxc8,c3 Qxc8,e1 22.
Kc3,c5 Qc6,h3 23. Qe1,c5 g6,h3 24. g4,c5 Bf8,h3 25. Qe2,c5 Ra1,d2 26. b4,c5
Qa4,b3 27. h3,d2 Bxb4,c5 28. Kd2,c3 h6,e3 29. g5,c3 hxg5,e3 30. Rh2,c3
Rb1,e3 31. Ne1,c3 Kg7,e3 32. Qf1,c3 Rxb2,e3 33. Kc1,a3 Qb3,f3 34. Kd1,c2
Bc3,c1 35. Qd3,c2 Bxd3,e2 36. Nxd3,c2 Rb1,e2 37. Nc1,c2 Qb2,e2 38. Ke1,d2
Rxc1,f1 39. Ke2,d2 Rxg1,f3 40. h4,c2 Bxd4,g4 41. hxg5,d2 fxg5,f3 42. Rh3,c2
g4,g3 43. Rh4,c2 Bf6,g5 44. Rxg4,c2 Rxg4,f3 45. Ke1,g2 Rf4,d3 46. f3,e2
Qc2,f2 47. Kf1,e2 Qd1,f2 48. Kg2,e2 Bd4,g3 49. Kf2,e3 Qxf3,e1 50. Kg1,f2
Qh3,h2 51. Kf2,e8 Bxf2,g1
{Black wins} 0-1

[Event "Computer Chess Game"]
[Site "AMD 3900x 20 cores"]
[Date "2022.12.07"]
[Round "4"]
[White "Fairy-Stockfish 071222"]
[Black "TJchessDuck 0.2"]
[Result "1/2-1/2"]
[TimeControl "40/300"]
[Variant "duck"]
[Annotator "1. +0.39 1... -0.28"]

1. d4,d5 e6,e3 2. c4,d6 Nf6,e3 3. g3,d5 c5,e3 4. dxc5,d6 Qa5,d2 5. Nc3,b5
Bxc5,d4 6. a3,d6 Bd4,d2 7. Nb5,b4 Nc6,b3 8. Nxd4,d2 Nxd4,d3 9. b4,c7 Qf5,d2
10. Bh3,e4 Nc6,g4 11. Bg2,f3 Ne5,c5 12. Qb3,f3 d5,c5 13. cxd5,f3 exd5,c4
14. Nf3,g8 Be6,d2 15. Nd4,f3 Qh5,d2 16. f4,c4 Nc6,d2 17. Nxe6,b2 fxe6,d2
18. Bb2,f8 a6,c3 19. e4,f8 O-O-O,e5 20. O-O,f3 dxe4,e5 21. Qxe6,b8 Rd7,e5
22. a4,f8 Qe2,c3 23. b5,d4 Qxb2,d6 24. bxc6,d4 bxc6,d6 25. Rfc1,b1 Qd4,d6
26. Kh1,b1 c5,c6 27. Bh3,b1 Re8,c6 28. Qa2,b8 e3,e6 29. Rd1,d2 Qe4,f5 30.
Kg1,d2 Rd4,f5 31. Qe2,g2 c4,g4 32. Bg2,d3 Re6,f3 33. Rac1,d3 Rc6,f3 34.
Qe1,d3 Nd5,f3 35. Qa5,d2 Kb7,f3 36. Qd8,e2 Rxd1,f3 37. Rxd1,e2 Nc7,f3 38.
Qf8,e2 g6,f3 39. Qb4,e2 Kc8,f3 40. Qf8,c2 Qe8,e2 41. Qb4,e1 Qd7,d5 42.
Bf3,e2 Qd3,d2 43. Qf8,b7 Qd8,d5 44. Qb4,d6 c3,d5 45. Qb3,e2 Ne6,d5 46.
Kg2,d4 Rc7,d5 47. Bg4,f6 Qe7,f5 48. Re1,h6 c2,f5 49. Qxc2,c5 h5,f5 50.
Bh3,c5 Qd7,f5 51. Qe4,d4 Qc6,f5 52. Kf3,c5 Qxe4,f5 53. Kxe4,c5 Kd7,f5 54.
Kd5,c6 Ke7,f5 55. Rxe3,c5 Ng7,e4 56. Bf1,f5 Kf7,d3 57. Re5,c6 Ne8,d3 58.
Kc5,c6 Nf6,b6 59. Bc4,c6 Nd7,e6 60. Kd6,c6 Nxe5,e6 61. fxe5,c6 Re7,e6 62.
Bxa6,d5 Ra7,e6 63. Bb5,d7 Kg7,e6 64. a5,a6 Rb7,c6 65. e6,b6 Kf6,a6 66.
Bc4,a7 Re7,d5 67. Kc5,d7 Rxe6,d5 68. a6,b5 Re7,a7 69. Kc6,e6 Re8,a7 70.
Kc7,e7 g5,a7 71. Bb5,e7 Rf8,a7 72. Kb7,e7 h4,a7 73. gxh4,e7 gxh4,a7 74.
Kc7,e7 Rf7,a7 75. Be8,e7 Rg7,a7 76. Kd6,c7 Rg2,a7 77. h3,d2 Rg3,a7 78.
Bc6,e3 Rxh3,a7 79. Bg2,e3 Rg3,a7 80. Bb7,h3 Rd3,a7 81. Kc7,c3 h3,a7 82.
Be4,e3 Rc3,a7 83. Kd6,h2 Ra3,a7 84. Bb7,h2 Ra1,a7 85. Bc8,h2 Rxa6,b7 86.
Bxh3,c6 Kg5,g4 87. Ke5,b6 Ra2,g4 88. Bf1,e2 Kg4,d3 89. Be2,b2 Kg3,d3 90.
Bh5,g6 Ra5,e6 91. Be8,d5 Kf3,d7 92. Kd4,f4 Ra2,d7 93. Bf7,e6 Rd2,d3 94.
Ke5,e6 Ke2,d5 95. Kd4,d3 Kf2,e6 96. Bg6,d3 Kg3,f5 97. Ke5,f2 Re2,f5 98.
Be8,e3 Kg4,d7 99. Bg6,e3 Kf3,f5 100. Be8,e3 Kf2,d7 101. Kf4,e3 Rb2,d7 102.
Ke4,c2 Rb4,d7 103. Kd4,c4 Kg2,d7 104. Kc5,f4 Rb2,d7 105. Bf7,e6 Kf3,d5 106.
Kd4,e6 Rb4,c4 107. Kc5,e6 Rb3,d5 108. Be6,f4 Ke4,d5 109. Bd7,c6 Rc3,b4 110.
Kd6,e7 Rc2,c6 111. Be6,d4 Kf4,d5 112. Bc8,c4 Ra2,b7 113. Be6,c2 Rb2,d5 114.
Bd7,c2 Ke4,c6 115. Kc5,c2 Ke5,d5 116. Ba4,d2 Ra2,e6 117. Bc6,b2 Ra3,b6 118.
Kb4,b7 Rd3,d5 119. Kc4,d6 Rd2,c3 120. Bb5,a6 Rb2,c3
{User adjudication} 1/2-1/2

So in 5 min TC, the champion in FSFDuck, congrats to Fabian Fichter, and again also to TonyJH, who improved the code for compatibility with Winboard, what made the above matches possible

Have enjoyed the games and learned much about the strategy of Duck Chess, and hope you enjoy them, too
TonyJH
Posts: 183
Joined: Tue Jun 20, 2006 4:41 am
Location: USA

Re: Duck Chess

Post by TonyJH »

Thanks for running this match and posting the results and games! :)
I wonder if FSFduck will have a NNUE net that is trained for duck chess, in the future.
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

hgm wrote: Mon Dec 05, 2022 8:52 pm I uploaded a version of DuckSlayer that should fix the 'blocked-castling' problem. It is at http://hgm.nubati.net/ducks.exe . Didn't have time to test it.
I watched a friend play against DuckSlayer, and noticed two bugs:
1. It allows you to place the duck on the same square as the piece you just moved
2. DuckSlayer does not allow castling out of check - but there is no check or checkmate in Duck Chess.

In this position it is Black's move. After Qe4, White tried to castle. This was flagged as illegal by DuckSlayer
r1b1kb1r/ppp1pppp/2p5/3qP3/3P4/2P2N2/P1P2PPP/R1BQK2R w KQkq - 0 1
Retired actuary and software developer. I love chess, coffee, wine and food
MTaktikos
Posts: 59
Joined: Fri Oct 25, 2019 7:58 pm
Full name: Michael Taktikos

Re: Duck Chess

Post by MTaktikos »

TonyJH wrote: Thu Dec 08, 2022 3:47 am Thanks for running this match and posting the results and games! :)
I have to thank a lot for your contribution.
In the meantime, also the original FSF drop branch should have some improved winboard compatibility, but
for my PC system, only your changes have produced full Winboard compatibility.
Have uploaded the code with your changes here:
https://github.com/mtaktikos/Fairy-Stoc ... compatible

A Windows avx2 compile can be downloaded here:
https://filehorst.de/d/eolwDxdl
The embedded NNUE is for now the normal chess NNUE
I wonder if FSFduck will have a NNUE net that is trained for duck chess, in the future.
I think you can help to make this process much faster :)
Have trained two dedicated Duck NNUEs (can be downloaded in https://filehorst.de/d/ekzkkltp) with help of the datagenerator in https://github.com/fairy-stockfish/vari ... /tree/duck
but this datagenerator/NNUEs produce also incompatible moves, rejected by Winboard as illegal.
The above FSF datagenerator has in it's most parts the same structure as the FSF engine. May I ask you to try to apply to this datagenerator the same changes as you have successfully done to the engine?
MTaktikos
Posts: 59
Joined: Fri Oct 25, 2019 7:58 pm
Full name: Michael Taktikos

Re: Duck Chess

Post by MTaktikos »

TonyJH wrote: Thu Dec 08, 2022 3:47 am I wonder if FSFduck will have a NNUE net that is trained for duck chess, in the future.
Found out that the Datagenerator itself, when used as an engine, with the NNUEs trained by its own data, produces moves that are not rejected by Winboard, so no further efforts for compatibility are needed.
My NNUEs so far where trained in the "quick-and-dirty" way with only 2 million positions, and are much weaker than classical evaluation. Now more serious training has started, I guess we have not to wait too long for the first really strong NNUE
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

hgm wrote: Mon Dec 05, 2022 8:52 pm I uploaded a version of DuckSlayer that should fix the 'blocked-castling' problem. It is at http://hgm.nubati.net/ducks.exe . Didn't have time to test it.
I watched some more games vs DuckSlayer, and found another bug. The program apparently assumes that the King MUST move due to "double check" - but there is no check or checkmate in Duck Chess.

On move 26, Black tried to capture the Bishop on b5, and block the Rook on the d-file. This was rejected as an illegal move:

[Event "Computer Chess Game"]
[Site "WIN-7U8BV84RMJM"]
[Date "2022.12.09"]
[Round "-"]
[White "DuckSlayer 0.00"]
[Black "Rick Groszkiewicz"]
[Result "*"]
[TimeControl "720+2"]
[Variant "duck"]
[Annotator "1. +0.03"]

1. Nc3,c6 g6,g7 2. d4,f3 Bg7,e3 3. Nf3,f6 d6,e3 4. Bd2,d5 Bg4,e3 5. h3,d5
Bxf3,e3 6. exf3,e5 c5,e2 7. dxc5,d3 Bxc3,e2 8. Bxc3,d4 dxc5,e5 9. Qxd8,f6
Kxd8,d4 10. Bc4,f6 e6,d4 11. a4,c6 Ne7,d4 12. a5,d5 a6,d4 13. b4,c7 cxb4,d4
14. Bxb4,c6 Nf5,d1 15. Bc3,d4 Nc6,e5 16. O-O,d4 Re8,d1 17. Ra2,d4 Ke7,e5
18. Bd3,h5 Nd6,e1 19. Ra4,d4 b5,b6 20. Ra2,e4 f5,e1 21. f4,b7 Rac8,e1 22.
Ra1,b7 Kd7,e1 23. Rd1,b4 Nb7,d2 24. Rfe1,e7 Nbxa5,d2 25. Bxa5,c4 Nxa5,d2
26. Bxb5,e7
*

I tried loading the PGN file back into WinBoard for post-game analysis, but it didn't quite work for me. It complained that 16.O-O, d4 was an ambiguous move. This happened using both DuckDlayer and TJChessDuck.
Retired actuary and software developer. I love chess, coffee, wine and food
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

hgm wrote: Mon Dec 05, 2022 8:52 pm I uploaded a version of DuckSlayer that should fix the 'blocked-castling' problem. It is at http://hgm.nubati.net/ducks.exe . Didn't have time to test it.
I watched some more games vs DuckSlayer, and found another bug. On move 26, Black (DuckSlayer) tried to capture the Knight on d5, and block the Bishop on b4. This was rejected by DuckSlayer as an illegal move!!

[Event "Computer Chess Game"]
[Site "WIN-7U8BV84RMJM"]
[Date "2022.12.09"]
[Round "-"]
[White "Rick Groszkiewicz"]
[Black "DuckSlayer 0.00"]
[Result "*"]
[TimeControl "720+2"]
[Variant "duck"]
[Annotator "1... -0.06"]

1. e4,e6 Nc6,f3 2. Nc3,e6 Nf6,f3 3. Bb5,b5 a6,d3 4. Bxc6,e5 dxc6,f3 5.
e5,g4 Nd5,d7 6. d4,e6 Nxc3,d7 7. bxc3,f3 Bf5,e4 8. Ba3,d6 Be4,f3 9. Kf1,e6
h6,f4 10. f3,d5 Bf5,f4 11. Ne2,e6 Qd5,f6 12. Kf2,e6 Qc4,g1 13. Qd2,e6
Qa4,a5 14. Bb2,e6 g6,g1 15. g4,e6 h5,b4 16. gxf5,g7 gxf5,f4 17. Qd3,e6
Bh6,e4 18. c4,e6 c5,b3 19. Nc3,c6 Qb4,b3 20. Rab1,e6 cxd4,d5 21. Qxd4,d8
Bg5,d5 22. a3,c5 Qa5,e1 23. Nd5,b4 c5,c3 24. Qd3,d8 e6,b6 25. Bc3,a4
exd5,b4
*

I was unable to analyze this game using DuckSlayer:
1. I set both engines to DuckSlayer at startup
2. I set Analysis mode and Pause
3. Then I loaded the PGN file
4. WinBoard starts walking through the moves
5. At move 13 for Black, I get two error dialogs:
"Error writing to first chess program. The pipe is being closed"
"Error: first chess program (ducks) exited unexpectedly"

[/quote]
Retired actuary and software developer. I love chess, coffee, wine and food
JohnWoe
Posts: 529
Joined: Sat Mar 02, 2013 11:31 pm

Re: Duck Chess

Post by JohnWoe »

MayhemDuck 1.8 is the first version that works flawlessly under Winboard.

I tested w/ wine + Winboard and found this log:
Winboard sent 2 moves see line 82.

Code: Select all

 Move: d6c6,c6b8
 76 Move: e6c6,c6c3
 77 Move: e5c6,c6b7
 78 Move: f4f3,f3c3
 79 Move: c6e5,e5a8
 80 Move: f3f2,f2f1
 81 Move: e5f7,f7a8
 82 Move: f2f1,f1c3qf7h6,h6g7
 83 Move: f7h6,h6g7
 84 Move: g8h7,h7g4
 85 Cmd: position
 86 Cmd: go
 87 Cmd: quit
Windows version is 2x slower: :o

Windows:

Code: Select all

Result:   20 / 20
Nodes:    42751043
Time(ms): 34354
NPS:      1244426
Linux:

Code: Select all

Result:   20 / 20
Nodes:    42751043
Time(ms): 15174
NPS:      2817387
User avatar
hgm
Posts: 28353
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Duck Chess

Post by hgm »

I uploaded a new version of WinBoard to http://hgm.nubati.net/Duck2.zip . This fixes a problem with reading castlings in PGN.

The problem was that when a Duck move ",xx" was found appended to O-O or O-O-O, it did correctly read that Duck move, but then skipped 5 characters instead of 3. So that it would overlook the following (FIDE) move, and consider the Duck move as the FIDE move. Which would of course almost always be illegal.

As to DuckSlayer's castling behavior; I would have a look at that. My engines usually treat castling similar to a Pawn double-push, which gives the opponent the right to e.p. capture the moved piece at the square it passed through. For castling that would make the move illegal under FIDE rules, as you are not allowed to expose your King to capture. But if exposing your King is not illegal per se, as in Duck Chess, exposing it to capture of course is still the worst thing you could do, and would still lose you the game in exactly the same way as an illegal move would. So I saw no need to distinguish those, and still treat exposure of the King as illegal. I only disabled the 'stalemate exception', which corrects the score to draw when there are no legal moves and null move does not expose the King to capture.

But apparently Duck Chess has the rule that you can castle through check without the opponent being able to capture the King afterwards. So it would require some more modification of the FIDE code.