But that does not exclude it. It depends on whether WinBoard was started in Game Viewer mode (and no engine was loaded later through the menu). When an engine is loaded even in Edit Game mode the first engine follows the game, and kicks in through "Illegal move" or result commands when it feels appropriate.
Duck Chess
Moderator: Ras
-
- Posts: 28353
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Duck Chess
-
- Posts: 59
- Joined: Fri Oct 25, 2019 7:58 pm
- Full name: Michael Taktikos
Re: Duck Chess
Let me describe the test better (Today, I repeated it again to be sure):hgm wrote: ↑Sun Jan 08, 2023 8:28 am But that does not exclude it. It depends on whether WinBoard was started in Game Viewer mode (and no engine was loaded later through the menu). When an engine is loaded even in Edit Game mode the first engine follows the game, and kicks in through "Illegal move" or result commands when it feels appropriate.
At Winboard start, DuckChess was loaded, and after the start, no engine was loaded through the Engines menu (wanted to see what Winboard says and not to use any engine at all). In the Adjucation menu "Verify Engine Claims" was on.
In the Mode "Edit game", I made the described moves (not to forget the credits: source of this moves is
https://discord.com/channels/7793178168 ... 1228207214)
After the last move, Rd8, h7, since Black had no more moves and so the game was over, we have a situation where Winboard should had adjucate the result of this position, but nothing happened, for Winboard the game was not over at all. So I had to start with "Mode/Machine Black" the DuckSlayer engine.
Immediately the wrong result 1-0 was shown (correct is 0-1), and a Winboard user expects that this result comes from Winboard and not from an engine claim, else the option "Verify Engine Claims" makes no sense.
[Event "Computer Chess Game"]
[Site "DESKTOP-UG2MCF4"]
[Date "2023.01.08"]
[Round "-"]
[White "mtaktikos"]
[Black "DuckSlayer 0.00, Winboard: Verify Engine Claims"]
[Result "1-0"]
[TimeControl "60/120"]
[Variant "duck"]
1. e4,d6 f6,d4 2. Nf3,c4 c5,c3 3. Ng5,b3 Qa5,c3 4. Nf7,b3 Qxa2,c3 5.
Nxh8,b3 Kf7,c3 6. Ng6,b3 h6,c3 7. Nf4,d3 Kg6,e3 8. Nh3,f3 Kh7,g3 9. Nf4,f3
Kh8,g3 10. h4,f3 Qxb1,b3 11. g4,a2 d5,a3 12. Nxd5,a2 Kh7,a3 13. e5,b3
Qa2,c3 14. e6,b3 Qb1,c3 15. f4,b3 c4,c3 16. f5,b3 c3,d3 17. g5,e3 Kh8,f3
18. g6,e3 Qxc1,f3 19. h5,e3 Qxd1,f3 20. Rxd1,e3 cxd2,d3 21. Rxd2,c3 b6,a3
22. Nxb6,b3 Kh7,c3 23. Nxa8,b3 Na6,c3 24. Bxa6,b3 Bd7,c3 25. Rxd7,d3 Kh8,b3
26. Rd8,h7
1-0

Then I made a second repetition of the test, this time the option "Verify Engine Claims" was switched off, and the option "Test Legality" on.
Indeed this time a result was shown without the need to start "Machine Black", and there appeared another result - unfortunately not the correct one 0-1
[Event "Edited game"]
[Site "DESKTOP-UG2MCF4"]
[Date "2023.01.08"]
[Round "-"]
[White "mtaktikos, Winboard: Legality on"]
[Black "-"]
[Result "1/2-1/2"]
[Variant "duck"]
1. e4,d6 f6,d4 2. Nf3,c4 c5,c3 3. Ng5,b3 Qa5,c3 4. Nf7,b3 Qxa2,c3 5.
Nxh8,b3 Kf7,c3 6. Ng6,b3 h6,c3 7. Nf4,d3 Kg6,e3 8. Nh3,f3 Kh7,g3 9. Nf4,f3
Kh8,g3 10. h4,f3 Qxb1,b3 11. g4,a2 d5,a3 12. Nxd5,a2 Kh7,a3 13. e5,b3
Qa2,c3 14. e6,b3 Qb1,c3 15. f4,b3 c4,c3 16. f5,b3 c3,d3 17. g5,e3 Kh8,f3
18. g6,e3 Qxc1,f3 19. h5,e3 Qxd1,f3 20. Rxd1,e3 cxd2,d3 21. Rxd2,c3 b6,a3
22. Nxb6,b3 Kh7,c3 23. Nxa8,b3 Na6,c3 24. Bxa6,b3 Bd7,c3 25. Rxd7,d3 Kh8,b3
26. Rd8,h7
{Stalemate} 1/2-1/2
In both tests, no message "Winboard Adjucation" was visible. Since in the first test the engine had to be started, I expect that the first result came from DuckSlayer and the second from Winboard. None of the both found the correct result 0-1.
If the second result, which is typical for standard chess, came indeed from Winboard, it should be noted that also many other standard-chess adjucations cannot be transfered 1:1 to duckchess (examples: K+P vs K in chess is mostly a draw, in duckchess it is a win. K + N vs K in chess is draw, in duckchess is a win), so it would be wrong if such adjucations are already integrated in Winboard
_____________________
https://github.com/mtaktikos?tab=repositories
https://github.com/mtaktikos?tab=repositories
-
- Posts: 28353
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Duck Chess
Indeed, the first message was coming from DuckSlayer. Adjudication options like Detect mates and Verify engine claims only work with legality testing on, as there is no way to do such things when WinBoard is not aware of the game rules. (This unlike 50-move and rep-draws, which can be recognized even without rule knowledge.)
You are correct that WinBoard assigns a wrong result for stalemate in Duck Chess; I was not even aware of this (rather counter intuitive) rule. I will fix that.
Options like Insufficient mating material should not be used in most variants, and to avoid problems engines should not claim them. WinBoard is configurable now for different piece moves, but not smart enough to deduce from those which pieces can checkmate, or force checkmate. In Duck Chess you can win with any piece combination, even K vs K, so there should be no such claims, and the adjudication option must be switched off.
[Edit] I uploaded a new version to http://hgm.nubati.net/Duck2.zip , which knows that stalemate is a loss (like in Suicide).
You are correct that WinBoard assigns a wrong result for stalemate in Duck Chess; I was not even aware of this (rather counter intuitive) rule. I will fix that.
Options like Insufficient mating material should not be used in most variants, and to avoid problems engines should not claim them. WinBoard is configurable now for different piece moves, but not smart enough to deduce from those which pieces can checkmate, or force checkmate. In Duck Chess you can win with any piece combination, even K vs K, so there should be no such claims, and the adjudication option must be switched off.
[Edit] I uploaded a new version to http://hgm.nubati.net/Duck2.zip , which knows that stalemate is a loss (like in Suicide).
-
- Posts: 121
- Joined: Sat Dec 03, 2022 9:28 pm
- Full name: Rick Groszkiewicz
Re: Duck Chess
Never mind - I forgot to check "Extended PGN information" under Options / General
Retired actuary and software developer. I love chess, coffee, wine and food
-
- Posts: 59
- Joined: Fri Oct 25, 2019 7:58 pm
- Full name: Michael Taktikos
Re: Duck Chess
Fully agree that the rule is counter-inuitive,. Also in the suite Winboard + FSF I linked here, it was an FSF from last December with this rule not implemented

Yes, that makes senseOptions like Insufficient mating material should not be used in most variants, and to avoid problems engines should not claim them.
Thanks a lot, HGM! To make things complete, I updated the suite with your new Winboard and a new FSF version which both know this rule: https://filehorst.de/d/eexCeEoiI uploaded a new version to http://hgm.nubati.net/Duck2.zip , which knows that stalemate is a loss (like in Suicide).
Have noticed that also TJChessDuck knows this rule, while DuckSlayer thinks stalemate = win, and Mayhem stalemate = draw
_____________________
https://github.com/mtaktikos?tab=repositories
https://github.com/mtaktikos?tab=repositories
-
- Posts: 28353
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Duck Chess
DuckSlayer has still many flaws (and did even crash due to an assert in a game posted earlier here), but I currently have no time to work on it.
-
- Posts: 5
- Joined: Wed Dec 28, 2016 12:46 pm
- Location: Italy
Re: Duck Chess
Thanks.MTaktikos wrote: ↑Mon Jan 09, 2023 12:32 am Thanks a lot, HGM! To make things complete, I updated the suite with your new Winboard and a new FSF version which both know this rule: https://filehorst.de/d/eexCeEoi
Have noticed that also TJChessDuck knows this rule, while DuckSlayer thinks stalemate = win, and Mayhem stalemate = draw
FSF now works flawlessly and improved its strength a bit, especially with NNUE.
I had to change a couple of lines because compile failed (the provided .exe crashed because of old hardware):
Code: Select all
assert(verify_material(pos, strongSide, 3000, 1));
assert(verify_material(pos, weakSide, -3000, 0));
Code: Select all
assert(verify_material(pos, strongSide, VALUE_VIRTUAL_MATE, 1));
assert(verify_material(pos, weakSide, VALUE_VIRTUAL_LOSS, 0));
-
- Posts: 59
- Joined: Fri Oct 25, 2019 7:58 pm
- Full name: Michael Taktikos
Re: Duck Chess
Thank you for this note and the solution you provided!defrag71 wrote: ↑Mon Jan 09, 2023 12:51 pm FSF now works flawlessly and improved its strength a bit, especially with NNUE.
I had to change a couple of lines because compile failed (the provided .exe crashed because of old hardware):
to -->Code: Select all
assert(verify_material(pos, strongSide, 3000, 1)); assert(verify_material(pos, weakSide, -3000, 0));
Code: Select all
assert(verify_material(pos, strongSide, VALUE_VIRTUAL_MATE, 1)); assert(verify_material(pos, weakSide, VALUE_VIRTUAL_LOSS, 0));
_____________________
https://github.com/mtaktikos?tab=repositories
https://github.com/mtaktikos?tab=repositories
-
- Posts: 529
- Joined: Sat Mar 02, 2013 11:31 pm
Re: Duck Chess
I'm surprised to see stalemate issues in MayhemDuck. Seems to work just fine. Anyway removed all material draw stuff. Since KvK is not a draw.
Tested the latest WinBoard under Linux Mint.
v2.0 captured all pieces but the ended in stalemate.
Anyway I believe v2.0 is the best MayhemDuck.
Code: Select all
[Event "Computer Chess Game"]
[Site "DESKTOP"]
[Date "2023.01.15"]
[Round "-"]
[White "MayhemDuck 2.0 (UCI2WB)"]
[Black "MayhemDuck 2.0 (UCI2WB)"]
[Result "1/2-1/2"]
[TimeControl "60+3"]
[Variant "duck"]
[FEN "4k3/4P3/4K3/8/8/8/8/8 w - - 0 1"]
[SetUp "1"]
{--------------
. . . . k . . .
. . . . P . . .
. . . . K . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
white to play
--------------}
1. Kd6,f7 Kf8,e8 2. exf8=Q,a8
{stalemate} 1/2-1/2
Code: Select all
[Event "Computer Chess Game"]
[Site "DESKTOP"]
[Date "2023.01.15"]
[Round "-"]
[White "MayhemDuck 2.0 (UCI2WB)"]
[Black "MayhemDuck 2.0 (UCI2WB)"]
[Result "1/2-1/2"]
[TimeControl "60+3"]
[Variant "duck"]
[FEN "7k/8/8/7K/8/8/8/8 w - - 0 1"]
[SetUp "1"]
{--------------
. . . . . . . k
. . . . . . . .
. . . . . . . .
. . . . . . . K
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
white to play
--------------}
1. Kg6,g8 Kg7,a1 2. Kxg7,a8
{stalemate} 1/2-1/2
v2.0 captured all pieces but the ended in stalemate.
Anyway I believe v2.0 is the best MayhemDuck.
Code: Select all
[Event "Computer Chess Game"]
[Site "DESKTOP"]
[Date "2023.01.14"]
[Round "-"]
[White "MayhemDuck 2.0 (UCI2WB)"]
[Black "MayhemDuck 1.9 (UCI2WB)"]
[Result "1/2-1/2"]
[TimeControl "60+1"]
[Variant "duck"]
[Annotator "1. +0.24 1... -0.18"]
1. Nf3,f6 Na6,c3 2. e4,b4 Nc5,c3 3. Bd3,f6 d5,c3 4. Bb5,c6 Bd7,f1 5. Ne5,c6
dxe4,f1 6. b4,c6 f6,e2 7. Ng4,c6 h5,e3 8. O-O,c6 hxg4,e1 9. bxc5,c6 e5,f3
10. Nc3,e7 c6,c4 11. Qxg4,f5 cxb5,b1 12. Qh5,h6 Bxc5,g6 13. Qxh8,f7 Bd4,b2
14. Qxg8,f8 Ke7,b1 15. Nd5,f8 Kd6,b1 16. Qxd8,c8 Bxa1,e3 17. Nc7,b8 e3,b1
18. fxe3,b8 Bd4,e4 19. exd4,b8 b4,a1 20. dxe5,c8 fxe5,b3 21. Nxa8,e6 e4,a3
22. Bb2,g6 e3,b3 23. dxe3,g6 Kc6,c3 24. Qc7,c5 Kd5,c6 25. Qxd7,c4 Kc5,b6
26. Rf5,c4 a5,e5 27. Bd4,c4 Kxd4,c3 28. Qxd4,b8 b3,b6 29. cxb3,b8 b5,a4 30.
Rxb5,b8 a4,a5 31. Qxg7,b8 axb3,b2 32. Nb6,a8 bxa2,a1 33. Nc4,a8 a1=Q,b1 34.
Qxa1,a8
{stalemate} 1/2-1/2
-
- Posts: 59
- Joined: Fri Oct 25, 2019 7:58 pm
- Full name: Michael Taktikos
Re: Duck Chess
Good news, Belzedar and I have published today our first official duck nnue net, can be downloaded from
https://fairy-stockfish.github.io/nnue/
Have updated here the complete winboard suite with the strongest FSFDuck so far (avx2 compile), combined with this net, and the other duck engines:
https://filehorst.de/d/etcBsCHx
Enjoy!
https://fairy-stockfish.github.io/nnue/
Have updated here the complete winboard suite with the strongest FSFDuck so far (avx2 compile), combined with this net, and the other duck engines:
https://filehorst.de/d/etcBsCHx
Enjoy!
_____________________
https://github.com/mtaktikos?tab=repositories
https://github.com/mtaktikos?tab=repositories