Duck Chess

Discussion of chess software programming and technical issues.

Moderator: Ras

rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

rgrosz789 wrote: Sat Dec 03, 2022 11:53 pm I have seen several games continue to the identical position after move 13, which is lost for White:
8. Ne4,h5 Nd5,a3
9. Bg3,c5 Bc8,f4
10. a5,a6 f5,f4
11. Nc5,d7 f4,e6
12. Bh4,g5 Qd6,e4
13. Nb3,g5 Qb4,d2
Those prior games used a time control of 5 minutes with a 4 second increment.
I finally got some variation at move 9 by reducing the time control to 3 minutes with a 2 second increment.
Retired actuary and software developer. I love chess, coffee, wine and food
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 »

Almost all chess engines are deterministic. When they are multithreaded (which DuckSlayer isn't) this can add a little bit of randomization. Otherwise they only play different games because people force them to start from different positions.
JohnWoe
Posts: 529
Joined: Sat Mar 02, 2013 11:31 pm

Re: Duck Chess

Post by JohnWoe »

Definitely not deterministic even w/ 1 core. As you get different speed for the same time allocation. I add a random component to root moves sorting so determinism isn't abused.
But the job of chess engine is to play the best move. If it's the same every time so be it.

Anyway I published MayhemDuck 1.6. I got reports it crashing( exiting ) when encountering illegal moves. v1.6 now crashes instead of throwing exceptions. Hopefully helps. MayhemDuck supports duck960 as I didn't remove chess960 code.
MTaktikos
Posts: 59
Joined: Fri Oct 25, 2019 7:58 pm
Full name: Michael Taktikos

Re: Duck Chess

Post by MTaktikos »

JohnWoe wrote: Sun Dec 04, 2022 11:47 am Anyway I published MayhemDuck 1.6. I got reports it crashing( exiting ) when encountering illegal moves.
Thank you!
Made a test vs DuckSlayer. Although DuckSlayer reaches always the better positions, luckily for MayhemDuck he still makes illegal moves (castling 0-0-0 by jumping with the Rook a8 over the Duck, or by not moving the Ra8 at all and dropping the Duck on d8 where after the 0-0-0 the Rook belongs). And now this illegal moves don't produce a crash of MayhemDuck, but defeat of DuckSlayer by Winboard adjucation.

After a 1-1 in 2 rounds, I made a third decisive round. MayhemDuck won luckily (by an illegal move of DuckSlayer) this round and the test match.

[Event "Duck Chess Game"]
[Site "AMD 3900x"]
[Date "2022.12.04"]
[Round "1"]
[White "MayhemDuck 1.6 (UCI2WB)"]
[Black "DuckSlayer 0.00"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.34 1... -0.03"]

1. d4,d6 Nf6,c3 2. Nf3,h5 Nc6,c3 3. Bf4,a5 Nd5,g3 4. Be5,a5 f6,f4 5. e4,b8
Nb6,f4 6. Bb5,a5 Nxe5,f7 7. dxe5,h6 a6,d3 8. exf6,c4 exf6,d3 9. Nc3,c5
axb5,d6 10. Nxb5,e6 Be7,g1 11. Nfd4,b8 Nc4,f5 12. Qh5,b8 c6,f7 13. b3,g6
cxb5,f7 14. bxc4,f4 bxc4,f7 15. O-O,f8 g6,d5 16. Qh6,b4 O-O,h8 17. Rfd1,d6
Kh8,a4 18. c3,d6 Ra5,a3 19. Rac1,a4 Rh5,f4 20. Ne6,d2 dxe6,d7 21. Qe3,c7
b5,d7 22. Qd4,d6 h6,a4 23. a3,d7 Bxa3,e8 24. Ra1,d7 Be7,e3 25. Qxd8,e8
Bxd8,d7 26. Ra8,b8 Bc7,c2 27. Rxc8,d8 Bxh2,f1 28. Kh1,d8 Bg3,e8 29. Kg1,d8
Bh2,f1 30. Kh1,d8 Bg3,e8 31. Kg1,d8 Bh2,f1 32. Kh1,d8 Bg3,e8 33. Kg1,d8
Bh2,f1 34. Kh1,d8 Bg3,e8 35. Kg1,d8 Bh2,f1 36. Kh1,d8 Bg3,e8 37. Kg1,d8
Bf4,e8 38. Rdd8,d7
{Xboard: Forfeit due to invalid move: f8d8;g7 (f8d8 via g7, `0) res=25} 1-0

[Event "Computer Chess Game"]
[Site "AMD 3900x"]
[Date "2022.12.04"]
[Round "2"]
[White "DuckSlayer 0.00"]
[Black "MayhemDuck 1.6 (UCI2WB)"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.02 1... -0.11"]

1. Nf3,c3 d5,h4 2. Nc3,f6 Qd6,a3 3. e4,f6 dxe4,b1 4. Nxe4,f4 Qg6,g4 5.
Bd3,g3 Qg4,c3 6. O-O,c6 Bf5,b1 7. Nc5,e4 Nc6,b1 8. Bxf5,f6 Qxf5,b1 9.
Nxb7,c5 Rb8,e2 10. Nc5,d5 Nf6,b1 11. d4,a6 Qf4,d2 12. c3,f5 e6,d2 13.
Na6,b7 Rc8,d2 14. Qa4,d6 Qe4,d5 15. Nc5,b5 Qd5,e4 16. Bf4,d6 Be7,e4 17.
c4,e5 Qd8,b5 18. Nb7,d7 O-O,b5 19. Nxd8,e8 Bxd8,b5 20. Qa6,b8 Nh5,b7 21.
Bd2,e7 Rb8,b6 22. Qb5,b7 Nxd4,b6 23. Nxd4,b7 Nf6,b6 24. Qa6,a8 Rxb2,a4 25.
Bc3,b6 c5,b1 26. Bxb2,c3 cxd4,g6 27. Bxd4,e4 Ng4,b6 28. h3,h6 Bb6,c5 29.
Bxg7,a3 Rd8,c3 30. hxg4,c2 Kxg7,c1 31. a4,d4 Bc5,c1 32. Qxa7,b6 Bb4,c1 33.
Qd4,d6 Kg6,d7 34. c5,d5 Rc8,c4 35. c6,d5 Rxc6,c4 36. Qe4,g5 Rc3,f5 37.
Qxb4,c2 Rd3,c1 38. f4,c3 Kg7,c1 39. g3,f3 Kf6,g5 40. Qe4,f3 Rd2,g6 41.
Qd4,d3 Re2,e5 42. Qd3,b2 h5,c1 43. g5,e7 Kf5,e4 44. Qxe2,h8 Kg4,f3 45.
Kf2,e4 h4,f3 46. g6,h3 hxg3,f3 47. Kg1,c4 fxg6,f3 48. Qd2,e8 Kh3,d5 49.
a5,b8 Kg4,f5 50. a6,d5 Kh3,a3 51. a7,b3 Kg4,a8 52. Qe2,f5 Kh4,a8 53.
Qxe6,f6 g2,g5 54. Kxg2,d7 g5,c1 55. Qh3,h5 Kxh3,f5 56. Kxh3,a5
{Xboard: Forfeit due to invalid move: a9f1;f5 (a1a1 via f5, `0) res=25} 1-0

[Event "Computer Chess Game"]
[Site "AMD 3900x"]
[Date "2022.12.04"]
[Round "3"]
[White "MayhemDuck 1.6 (UCI2WB)"]
[Black "DuckSlayer 0.00"]
[Result "1-0"]
[TimeControl "60/60"]
[Variant "duck"]
[Annotator "1. +0.34 1... -0.03"]

1. d4,d6 Nf6,c3 2. Nf3,h5 Nc6,c3 3. Bf4,a5 Nd5,g3 4. Be5,a5 f6,f4 5. e4,b8
Nb6,f4 6. Bb5,a5 Nxe5,f7 7. dxe5,h6 a6,d3 8. exf6,c4 exf6,d3 9. Nc3,c5
axb5,d6 10. Nxb5,e6 Be7,g1 11. Nfd4,b8 Nc4,f5 12. Qh5,b8 c6,f7 13. b3,g6
cxb5,f7 14. bxc4,f4 bxc4,f7 15. O-O,f8 g6,d5 16. Qh6,b4 O-O,h8 17. Rfd1,d6
Kh8,a4 18. c3,d6 Ra5,a3 19. Rac1,a4 Rh5,f4 20. Ne6,d2 dxe6,d7 21. Qe3,c7
b5,d7 22. Rd4,b7 Bd7,c2 23. Qg3,d6 e5,d5 24. Rdd1,h4 Qa8,d6 25. Qg4,e6
{Xboard: Forfeit due to invalid move: f8d8;f3 (f8d8 via f3, `0) res=25} 1-0
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 guess DuckSlayer's method for testing which Duck locations would block a given move does not work for castling: it would only test whether the King is blocked, as the current test is purely from-square and to-square based. When I have time again to work on DuckSlayer / WinBoard I will fix it.
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

After playing several matches with DuckSlayer, it seems to prefer Bishops over Knights. In most games it has two Bishops versus two Knights, which gives the opponent a large advantage. It also seems to evaluate the position to its advantage, but that is incorrect.
Retired actuary and software developer. I love chess, coffee, wine and food
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 am not surprised, as DuckSlayer is still using the evaluation from normal Chess. It has not been tuned for Duck Chess at all. I am only going to do that after there are no more move bugs, PV extraction works properly, setting of the alpha-beta search window is optimally tight, and I have implemented a transposition table.
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

TonyJH wrote: Mon Nov 14, 2022 6:33 am Here is a new duck chess engine: http://tonyjh.com/chess/TJchessDuck_0.1.zip (Windows 64-bit, Winboard engine)
It is based on TJchess, so I just called it TJchessDuck for now.
It is working for me with HGM's updated Winboard package for duck chess.
I did a 4 game match with TChessJDuck versus DuckSlayer, using a time control of 5 minutes with a 4 second increment.

TJCessDuck is VERY strong, and won all four games convincingly.
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 »

It's time for the boss fight. FSFDuck2212 vs TJChessDuck
First round today, next one Wednesday (Too much work tomorrow)
FSF doesn't work well with Winboard, I had to put the moves from command line

Fairy-Stockfish 051222 by Fabian Fichter
xboard
option EvalFile=duck-46832cfbead3.nnue
memory 2048
cores 20
variant duck
st 10
go

[Event "Duck Chess Game"]
[Site "AMD 3900x"]
[Date "2022.12.05"]
[Round "1"]
[White "FSFDuck221205"]
[Black "TJchess-Duck 0.1"]
[Result "1-0"]
[TimeControl "60/600"]
[Variant "duck"]
[Annotator "1... -0.20"]

1. d4,d6 e6,e3 2. c4,d6 c5,d5 3. dxc5,d6 Qa5,c3 4. e4,b4 Nc6,c3 5. a3,b4
Qxc5,d3 6. Nf3,f6 Qxc4,d3 7. Nc3,c5 Be7,d3 8. Be3,a6 Nf6,e2 9. h3,d6 Qb3,c2
10. Qb1,d2 e5,d3 11. g4,h6 a6,g5 12. Nd2,e6 Qb6,c5 13. g5,d4 Ng8,c5 14.
Nd5,d8 Qa7,c5 15. Nc7,f8 Kd8,c5 16. Qa2,d4 Bxg5,c5 17. Nxa8,f4 Bh6,c5 18.
Qxf7,g5 Nge7,c5 19. Bxh6,g8 gxh6,f8 20. Rg1,g8 Qxa8,f8 21. h4,g8 Kc7,g7 22.
h5,g8 d6,g7 23. Qf8,g8 Nd4,c2 24. Qxe7,d7 Kc6,b1 25. Nc4,f3 Qb8,c7 26.
Na5,b6 Kb5,c4 27. Qxd6,c7 Nc2,c4 28. O-O-O,c7 Qa7,c4 29. Kxc2,c5 Ka4,b4 30.
Qc5,b6 Be6,b4 31. Qxa7,g8 Kxa5,b4 32. Qxb7,g8 Ba2,b4 33. b3,g8 Bxb3,b4 34.
Kxb3,g8 Kb5,b4 35. Bxb5,a5
{White wins} 1-0

Comment: In move #31, FSF very materialistic chosed to take the Queen, while TJChess found that 31.b3 would start a mate attack. The dominance of FSF was overwhelming as expected, but let us wait until Wednesday if TJChessDuck can strike back
TonyJH
Posts: 183
Joined: Tue Jun 20, 2006 4:41 am
Location: USA

Re: Duck Chess

Post by TonyJH »

Congrats to FSF devs! Thanks for posting the game.

I don't know if you tried setting the number of cores for TJchessDuck, but currently, TJchessDuck can use a maximum of 16 cores. But I usually don't set it higher than the number of physical cores available.