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 »

Here is the second xboard.debug file:

locale = en_US.UTF-8
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
shuffleOpenings = 0
Version: xboard 4.9.1 + fairymax ()
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir=".") fairymax
261 >first : xboard
protover 2
319 <first : tellics say Fairy-Max 5.0b
319 <first : tellics say by H.G. Muller
319 <first : feature myname="Fairy-Max 5.0b"
319 >first : accepted myname
319 <first : feature memory=1 exclude=1
319 >first : accepted memory
319 >first : accepted exclude
319 <first : feature setboard=0 xedit=1 ping=1 done=0
319 >first : accepted setboard
319 >first : accepted xedit
319 >first : accepted ping
319 >first : accepted done
319 <first : feature variants="normal,nocastle,shatranj,asean,makruk,cambodian,ai-wok,courier,knightmate,capablanca,gothic,janus,falcon,cylinder,berolina,super,seirawan,spartan,great,light-brigade,king-of-the-hill,bifurcator,team-mate,los-alamos,ciccolini,mexican,grande-acedrex,roman,almost-wildebeest,fairy"
319 >first : accepted variants
319 <first : feature option="Resign -check 0"
319 >first : accepted option
319 <first : feature option="Resign Threshold -spin 800 200 1200"
319 >first : accepted option
319 <first : feature option="Claim draw after -spin 50 0 200"
319 >first : accepted option
319 <first : feature option="Ini File -file /usr/share/games/fairymax/fmax.ini"
319 >first : accepted option
319 <first : feature option="Multi-PV Margin -spin 0 0 1000"
319 >first : accepted option
319 <first : feature option="Variant fairy selects -combo FIDE-Clobberers /// Clobberers-FIDE /// FIDE-Nutters /// Nutters-FIDE /// Clobberers-Nutters /// Nutters-Clobberers /// FIDE-Rookies /// Rookies-FIDE /// Clobberers-Rookies /// Rookies-Clobberers /// Nutters-Rookies /// Rookies-Nutters"
319 >first : accepted option
319 <first : feature option="Makruk rules -combo makruk /// Cambodian /// Ai-wok"
319 >first : accepted option
319 <first : feature option="Dummy Slider Example -slider 20 0 100"
319 >first : accepted option
319 <first : feature option="Dummy String Example -string happy birthday!"
319 >first : accepted option
320 <first : feature option="Dummy Path Example -path ."
320 >first : accepted option
320 <first : feature option="Automatic persistent-hash dialog -check 0"
320 >first : accepted option
320 <first : feature option="Info -button"
320 >first : accepted option
320 <first : feature option="Save in hash file -button"
320 >first : accepted option
320 <first : feature option="Clear Hash -button"
320 >first : accepted option
320 <first : feature done=1
320 >first : accepted done
321 >first : memory 68
321 >first : new
random
321 >first : level 0 3 2
321 >first : post
321 >first : hard
321 >first : ping 1
Impossible move , type = 0
352 <first : pong 1
10095 >first : quit
Unload first
StartChildProcess (dir="") uci2wb mayhemduck-2-64 .
10099 >first : xboard
protover 2
Reset(1, 1) from gameMode 0
recognized 'duck' (-1) as variant duck
GameEnds(0, (null), 2)
10099 >first : force
shuffleOpenings = 0
10102 >first : new
random
10102 >first : variant duck
10102 >first : level 0 3 2
10102 >first : post
10102 >first : hard
Impossible move , type = 0
10102 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
10102 >first : accepted setboard
10102 >first : accepted usermove
10102 >first : accepted debug
10102 >first : accepted ping
10102 >first : accepted name
10102 >first : accepted reuse
10102 >first : accepted exclude
10102 >first : accepted pause
10102 >first : accepted sigint
10102 >first : accepted sigterm
10102 >first : accepted done
10103 <first : feature option="UCI2WB debug output -check 0"
10103 >first : accepted option
10103 <first : feature option="ponder always -check 0"
10103 >first : accepted option
10244 <first : feature myname="MayhemDuck 2.0 (UCI2WB)"
10244 >first : accepted myname
10244 <first : feature option="duck960 -check 0"
10244 >first : accepted option
10244 <first : feature option="Level -spin 100 0 100"
10244 >first : accepted option
10244 <first : feature option="MoveOverhead -spin 100 0 10000"
10244 >first : accepted option
10244 <first : feature variants="duck"
10244 >first : accepted variants
10244 <first : feature smp=1 memory=1 done=1
10244 >first : accepted smp
10244 >first : accepted memory
10244 >first : accepted done
recognized 'duck' (-1) as variant duck
10246 >first : memory 68
10246 >first : cores 1
10246 >first : new
random
10246 >first : variant duck
10246 >first : level 0 3 2
10246 >first : post
10246 >first : hard
10246 >first : ping 1
Impossible move , type = 0
10246 <first : Error (unknown command): cores
10246 <first : pong 1
Unload second
Reset(1, 1) from gameMode 0
recognized 'duck' (-1) as variant duck
GameEnds(0, (null), 2)
16974 >first : quit
shuffleOpenings = 0
StartChildProcess (dir="") uci2wb mayhemduck-2-64 .
17027 >first : xboard
protover 2
17027 >first : memory 68
17028 >first : cores 1
17028 >first : new
random
17028 >first : variant duck
17028 >first : level 0 3 2
17028 >first : post
17028 >first : hard
17028 >first : ping 2
Impossible move , type = 0
17031 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
17031 >first : accepted setboard
17031 >first : accepted usermove
17031 >first : accepted debug
17031 >first : accepted ping
17031 >first : accepted name
17031 >first : accepted reuse
17031 >first : accepted exclude
17031 >first : accepted pause
17031 >first : accepted sigint
17031 >first : accepted sigterm
17031 >first : accepted done
17031 <first : feature option="UCI2WB debug output -check 0"
17031 >first : accepted option
17031 <first : feature option="ponder always -check 0"
17031 >first : accepted option
17176 <first : feature myname="MayhemDuck 2.0 (UCI2WB)"
17176 >first : accepted myname
17176 <first : feature option="duck960 -check 0"
17176 >first : accepted option
17176 <first : feature option="Level -spin 100 0 100"
17176 >first : accepted option
17176 <first : feature option="MoveOverhead -spin 100 0 10000"
17176 >first : accepted option
17176 <first : feature variants="duck"
17176 >first : accepted variants
17176 <first : feature smp=1 memory=1 done=1
17176 >first : accepted smp
17176 >first : accepted memory
17176 >first : accepted done
17176 <first : Error (unknown command): cores
17215 <first : pong 2
23230 >first : force
StartChildProcess (dir=".") FSFDuck
23231 >second: xboard
protover 2
23235 <second: Fairy-Stockfish 130223 by Fabian Fichter
23382 <second: feature setboard=1 usermove=1 time=1 memory=1 smp=1 colors=0 draw=0 highlight=1 name=0 sigint=0 ping=1 myname="Fairy-Stockfish 130223" variants="chess,3check,5check,ai-wok,almost,amazon,antichess,armageddon,asean,ataxx,atomic,breakthrough,bughouse,cambodian,chaturanga,chessgi,chigorin,clobber,codrus,coregal,crazyhouse,dobutsu,dragon,duck,euroshogi,extinction,fairy,fischerandom,flipello,flipersi,gardner,giveaway,gorogoro,grasshopper,hoppelpoppel,horde,judkins,karouk,kinglet,kingofthehill,knightmate,koedem,kyotoshogi,loop,losalamos,losers,makpong,makruk,micro,mini,minishogi,minixiangqi,newzealand,nightrider,nocastle,nocheckatomic,normal,paradigm,placement,pocketknight,raazuvaa,racingkings,seirawan,shatar,shatranj,shouse,sittuyin,suicide,threekings,torishogi"
23382 >second: accepted setboard
23382 >second: accepted usermove
23382 >second: accepted time
23382 >second: accepted memory
23382 >second: accepted smp
23382 >second: accepted colors
23382 >second: accepted draw
23382 >second: accepted highlight
23382 >second: accepted name
23382 >second: accepted sigint
23382 >second: accepted ping
23382 >second: accepted myname
23382 >second: accepted variants
23382 <second: feature option="Debug Log File -string "
23382 >second: accepted option
23382 <second: feature option="Clear Hash -button"
23383 >second: accepted option
23383 <second: feature option="Ponder -check 0"
23383 >second: accepted option
23383 <second: feature option="MultiPV -spin 1 1 500"
23383 >second: accepted option
23383 <second: feature option="Skill Level -spin 20 -20 20"
23383 >second: accepted option
23383 <second: feature option="Move Overhead -spin 10 0 5000"
23383 >second: accepted option
23383 <second: feature option="Slow Mover -spin 100 10 1000"
23383 >second: accepted option
23383 <second: feature option="nodestime -spin 0 0 10000"
23383 >second: accepted option
23383 <second: feature option="UCI_Chess960 -check 0"
23383 >second: accepted option
23383 <second: feature option="UCI_AnalyseMode -check 0"
23383 >second: accepted option
23383 <second: feature option="UCI_LimitStrength -check 0"
23383 >second: accepted option
23383 <second: feature option="UCI_Elo -spin 1350 500 2850"
23383 >second: accepted option
23383 <second: feature option="UCI_ShowWDL -check 0"
23383 >second: accepted option
23383 <second: feature option="SyzygyPath -string <empty>"
23383 >second: accepted option
23383 <second: feature option="SyzygyProbeDepth -spin 1 1 100"
23383 >second: accepted option
23383 <second: feature option="Syzygy50MoveRule -check 1"
23383 >second: accepted option
23383 <second: feature option="SyzygyProbeLimit -spin 7 0 7"
23383 >second: accepted option
23383 <second: feature option="Use NNUE -check 1"
23383 >second: accepted option
23383 <second: feature option="EvalFile -string <empty>"
23383 >second: accepted option
23383 <second: feature option="TsumeMode -check 0"
23383 >second: accepted option
23383 <second: feature option="VariantPath -string <empty>"
23383 >second: accepted option
23383 <second: feature option="usemillisec -check 1"
23383 >second: accepted option
23383 <second: feature done=1
23383 >second: accepted done
23384 >second: memory 68
23384 >second: cores 1
23384 >second: new
random
23384 >second: variant duck
23384 >second: level 0 3 2
23384 >second: post
23384 >second: hard
23384 >second: ping 1
Impossible move , type = 0
23384 >second: force
23525 <second: Error (unknown command): random
23527 <second: Error (unknown command): post
23527 <second: pong 1
New game (0): MayhemDuck 2.0 (UCI2WB)-Fairy-Stockfish 130223 (w)
23527 >first : computer
23527 >first : name Fairy-Stockfish 130223
23527 >second: computer
23528 >first : black
23528 >first : time 18000
23528 >first : otim 18000
23528 >first : white
book hit = (NULL)
23528 >first : go
nps: w=-1, b=-1
23529 <first : Error (unknown command): black
23529 <first : Error (unknown command): white
23529 <second: Error (unknown command): computer
23529 <first : 1 60 0 320 g1f3,f3a6
23531 <first : 2 -4 0 15366 g1f3,f3f6
23561 <first : 3 42 3 183087 g1f3,f3c6
23625 <first : 4 24 9 444264 g1f3,f3f6
25638 <first : 5 34 210 7363382 d2d4,d4c6
32447 <first : 6 34 891 29584523 d2d4,d4c6
32447 <first : move d2d4,d4c6
32447 >second: time 18000
32447 >second: otim 17308
book hit = (NULL)
32447 >second: usermove 32447 >second: d2d4,d4d4
32447 >second: go
32521 <first :
32521 <second: Illegal move: d2d4,d4d4
GameEnds(27, False illegal-move claim, 4)
GE(27, False illegal-move claim, 4) bare king k=16 color=0
32521 >first : result 1-0 {False illegal-move claim}
32521 >second: result 1-0 {False illegal-move claim}
32521 >first : quit
32571 >second: force
32571 >second: ping 2
32571 <second: info string classical evaluation enabled
32571 <second: 1 51 0 839 1 209750 0 d2d3,d3d2
32571 <second: 2 94 0 2069 2 295571 0 d2d4,d4a3 a7a6,a6d2
32571 <second: 3 120 1 3125 3 223214 0 a2a4,a4a6 b7b6,b6a3 d2d4,d4b7
32571 <second: 4 120 1 3871 4 241937 0 a2a4,a4a6 b7b6,b6a3 h2h4,h4b7 a7a6,a6h2
32571 <second: 5 120 2 4993 5 249650 0 a2a4,a4a6 b7b6,b6a3 d2d4,d4b7 a7a6,a6d2 e2e4,e4a7 a6a5,a5d2
32571 <second: 6 103 3 8430 6 216153 0 d2d4,d4d6 a7a6,a6d2 e2e4,e4a7 b7b6,b6d2 f1a6,a6a7 b8a6,a6d2
32572 <second: 7 68 7 14828 7 200378 0 d2d4,d4d6 a7a6,a6d2
32572 <second: pong 2
GameEnds(27, False illegal-move claim, 2)
272605 >second: quit
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 »

OK, I see what the problem is. And it is in uci2wb. This should split the doeble-move that UCI engines print into two separate CECP move commands, one for the FIDE piece and one for the Duck.

The version you have doesn't do that, and this confuses XBoard. So it does not send the same Duck move to engine 1 as that it received from engine 2. And that of course will cause inconsistencies that lead to illegal moves.

It appears that the patch I made for this to the UCI2WB I included in the WinBoard Duck Chess package never made it into my on-line repository for UCI2WB. There should be the following piece of code in UCI2WB.c:

Code: Select all

	    if((q = strchr(line+9, ','))) {
	      *q++ = 0;
	      Move4GUI(line+9);
	      printf("move %s,\n", line+9); // send first leg
            } else q = line + 9;
	    Move4GUI(q);
	    printf("move %s\n", q); // send move to GUI
The last two lines are there in the repository version, (except they use line+9 instead of q), but the preceding if-else clause, which is responsible for splitting moves that include a comma, is not.
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

hgm wrote: Tue Feb 21, 2023 10:55 am Since the problem seems to be that running ./autogen.sh does not produce a file ./configure for you, I have run "make dist" (after ./autogen.sh and ./configure) on my machine for the latest snapshot, to make a "distribution tar ball". Such a tar ball already contains the configure script, as the process involves running ./autogen.sh. This is the form in which XBoard sources are normally distributed. I uploaded it to

http://hgm.nubati.net/transfer/xboard-4.9.1.tar.gz .

It should be possible for you to build XBoard from that by running

./configure
make
sudo make install
I did a lot of research yesterday so I could compile your code for xboard. If we ever get this to actually compile, have fully documented everything for posterity ...

I ran these commands to clean up everything:

Code: Select all

sudo make clean
sudo rm configure
sudo find . -name Makefile.in -delete
sudo rm config.status
sudo ./autogen.sh
sudo ./configure
I attempted to make xboard using

Code: Select all

sudo make
But there seems to be a problem with duplicate definitions. I looked at the code itself, but only found 'ics_type' defined in backend.c.
Here are the messages that appear at the end of the make:

/usr/include/glib-2.0/glib/gtypes.h:553:8: note: declared here
553 | struct _GTimeVal
| ^~~~~~~~~
CCLD xboard
/usr/bin/ld: book.o:(.bss+0x0): multiple definition of `ics_type'; backend.o:(.bss+0x0): first defined here
/usr/bin/ld: childio.o:(.bss+0x0): multiple definition of `ics_type'; backend.o:(.bss+0x0): first defined here
.
.
/usr/bin/ld: nevalgraph.o:(.bss+0x8): multiple definition of `currPvInfo'; backend.o:(.bss+0x8): first defined here
.
.
/usr/bin/ld: gtk/xoptions.o:(.bss+0x0): multiple definition of `ics_type'; backend.o:(.bss+0x0): first defined here
/usr/bin/ld: gtk/xtimer.o:(.bss+0x0): multiple definition of `ics_type'; backend.o:(.bss+0x0): first defined here
/usr/bin/ld: gtk/xengineoutput.o:(.bss+0x0): multiple definition of `ics_type'; backend.o:(.bss+0x0): first defined here

collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:846: xboard] Error 1
make[2]: Leaving directory '/home/rick/chess-sources/xboard-4.9.1'
make[1]: *** [Makefile:1372: all-recursive] Error 1
make[1]: Leaving directory '/home/rick/chess-sources/xboard-4.9.1'
make: *** [Makefile:715: all] Error 2
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 »

The problem is in backend.h: this contains a line

enum ICS_TYPE ics_type;

and is #included in nearly every .c file. That line should be entirely removed, as backend.c already declares ics_type, and is the only source file that refers to it. (Otherwise there should have been an 'external' in front of the definition in backend.h.)

Anyway, I now pushed the patch I made in UCI2WB on behalf of Duck Chess to my on-line repository. You can download the latest snapshot there, and install it through

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

Re: Duck Chess

Post by rgrosz789 »

hgm wrote: Sun Feb 26, 2023 9:37 am Anyway, I now pushed the patch I made in UCI2WB on behalf of Duck Chess to my on-line repository. You can download the latest snapshot there, and install it through

sudo make install
Thanks for updating UCI2WB - it seems to work properly now, since Mayhem makes valid duck moves.

When I played a game using MayhemDuck2.0 for both engines, it still triggers an illegal move. It plays the same moves each time, and 3.Bg5 is clearly illegal.

Image

Here is the xboard.debug output

locale = en_US.UTF-8
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
shuffleOpenings = 0
Version: xboard 4.9.1 + fairymax ()
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir=".") fairymax
295 >first : xboard
protover 2
353 <first : tellics say Fairy-Max 5.0b
353 <first : tellics say by H.G. Muller
354 <first : feature myname="Fairy-Max 5.0b"
354 >first : accepted myname
354 <first : feature memory=1 exclude=1
354 >first : accepted memory
354 >first : accepted exclude
354 <first : feature setboard=0 xedit=1 ping=1 done=0
354 >first : accepted setboard
354 >first : accepted xedit
354 >first : accepted ping
354 >first : accepted done
354 <first : feature variants="normal,nocastle,shatranj,asean,makruk,cambodian,ai-wok,courier,knightmate,capablanca,gothic,janus,falcon,cylinder,berolina,super,seirawan,spartan,great,light-brigade,king-of-the-hill,bifurcator,team-mate,los-alamos,ciccolini,mexican,grande-acedrex,roman,almost-wildebeest,fairy"
354 >first : accepted variants
354 <first : feature option="Resign -check 0"
354 >first : accepted option
354 <first : feature option="Resign Threshold -spin 800 200 1200"
354 >first : accepted option
354 <first : feature option="Claim draw after -spin 50 0 200"
354 >first : accepted option
354 <first : feature option="Ini File -file /usr/share/games/fairymax/fmax.ini"
354 >first : accepted option
354 <first : feature option="Multi-PV Margin -spin 0 0 1000"
354 >first : accepted option
354 <first : feature option="Variant fairy selects -combo FIDE-Clobberers /// Clobberers-FIDE /// FIDE-Nutters /// Nutters-FIDE /// Clobberers-Nutters /// Nutters-Clobberers /// FIDE-Rookies /// Rookies-FIDE /// Clobberers-Rookies /// Rookies-Clobberers /// Nutters-Rookies /// Rookies-Nutters"
354 >first : accepted option
354 <first : feature option="Makruk rules -combo makruk /// Cambodian /// Ai-wok"
354 >first : accepted option
354 <first : feature option="Dummy Slider Example -slider 20 0 100"
354 >first : accepted option
354 <first : feature option="Dummy String Example -string happy birthday!"
354 >first : accepted option
354 <first : feature option="Dummy Path Example -path ."
354 >first : accepted option
354 <first : feature option="Automatic persistent-hash dialog -check 0"
354 >first : accepted option
354 <first : feature option="Info -button"
354 >first : accepted option
354 <first : feature option="Save in hash file -button"
354 >first : accepted option
354 <first : feature option="Clear Hash -button"
354 >first : accepted option
354 <first : feature done=1
354 >first : accepted done
356 >first : memory 2052
356 >first : new
random
356 >first : level 0 3 2
356 >first : post
356 >first : hard
356 >first : ping 1
Impossible move , type = 0
28067 >first : quit
Unload first
StartChildProcess (dir="") uci2wb mayhemduck-2-64 .
28073 >first : xboard
protover 2
Reset(1, 1) from gameMode 0
recognized 'duck' (-1) as variant duck
GameEnds(0, (null), 2)
28074 >first : force
shuffleOpenings = 0
28079 >first : new
random
28079 >first : variant duck
28079 >first : level 0 3 2
28079 >first : post
28079 >first : hard
Impossible move , type = 0
28080 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
28080 >first : accepted setboard
28080 >first : accepted usermove
28080 >first : accepted debug
28080 >first : accepted ping
28080 >first : accepted name
28080 >first : accepted reuse
28080 >first : accepted exclude
28080 >first : accepted pause
28080 >first : accepted sigint
28080 >first : accepted sigterm
28080 >first : accepted done
28080 <first : feature option="UCI2WB debug output -check 0"
28080 >first : accepted option
28080 <first : feature option="ponder always -check 0"
28080 >first : accepted option
28224 <first : feature myname="MayhemDuck 2.0 (UCI2WB)"
28225 >first : accepted myname
28225 <first : feature option="duck960 -check 0"
28225 >first : accepted option
28225 <first : feature option="Level -spin 100 0 100"
28225 >first : accepted option
28225 <first : feature option="MoveOverhead -spin 100 0 10000"
28225 >first : accepted option
28225 <first : feature variants="duck"
28225 >first : accepted variants
28225 <first : feature smp=1 memory=0 done=1
28225 >first : accepted smp
28225 >first : accepted memory
28225 >first : accepted done
recognized 'duck' (-1) as variant duck
28226 >first : cores 2
28226 >first : new
random
28226 >first : variant duck
28226 >first : level 0 3 2
28226 >first : post
28226 >first : hard
28226 >first : ping 1
Impossible move , type = 0
28226 <first : Error (unknown command): cores
28226 <first : pong 1
Unload second
Reset(1, 1) from gameMode 0
recognized 'duck' (-1) as variant duck
GameEnds(0, (null), 2)
34397 >first : quit
shuffleOpenings = 0
StartChildProcess (dir="") uci2wb mayhemduck-2-64 .
34452 >first : xboard
protover 2
34452 >first : cores 2
34452 >first : new
random
34452 >first : variant duck
34452 >first : level 0 3 2
34452 >first : post
34452 >first : hard
34452 >first : ping 2
Impossible move , type = 0
34456 <first : feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
34456 >first : accepted setboard
34456 >first : accepted usermove
34456 >first : accepted debug
34456 >first : accepted ping
34456 >first : accepted name
34456 >first : accepted reuse
34456 >first : accepted exclude
34456 >first : accepted pause
34456 >first : accepted sigint
34456 >first : accepted sigterm
34456 >first : accepted done
34456 <first : feature option="UCI2WB debug output -check 0"
34456 >first : accepted option
34456 <first : feature option="ponder always -check 0"
34456 >first : accepted option
34610 <first : feature myname="MayhemDuck 2.0 (UCI2WB)"
34610 >first : accepted myname
34610 <first : feature option="duck960 -check 0"
34610 >first : accepted option
34610 <first : feature option="Level -spin 100 0 100"
34610 >first : accepted option
34610 <first : feature option="MoveOverhead -spin 100 0 10000"
34610 >first : accepted option
34610 <first : feature variants="duck"
34610 >first : accepted variants
34611 <first : feature smp=1 memory=0 done=1
34611 >first : accepted smp
34611 >first : accepted memory
34611 >first : accepted done
34611 <first : Error (unknown command): cores
34611 <first : pong 2
40257 >first : force
StartChildProcess (dir="") uci2wb mayhemduck-2-64 .
40259 >second: xboard
protover 2
40262 <second: feature setboard=1 usermove=1 debug=1 ping=1 name=1 reuse=0 exclude=1 pause=1 sigint=0 sigterm=0 done=0
40262 >second: accepted setboard
40262 >second: accepted usermove
40262 >second: accepted debug
40262 >second: accepted ping
40262 >second: accepted name
40262 >second: accepted reuse
40262 >second: accepted exclude
40262 >second: accepted pause
40262 >second: accepted sigint
40262 >second: accepted sigterm
40262 >second: accepted done
40262 <second: feature option="UCI2WB debug output -check 0"
40262 >second: accepted option
40263 <second: feature option="ponder always -check 0"
40263 >second: accepted option
40402 <second: feature myname="MayhemDuck 2.0 (UCI2WB)"
40402 >second: accepted myname
40402 <second: feature option="duck960 -check 0"
40402 >second: accepted option
40402 <second: feature option="Level -spin 100 0 100"
40402 >second: accepted option
40402 <second: feature option="MoveOverhead -spin 100 0 10000"
40402 >second: accepted option
40402 <second: feature variants="duck"
40402 >second: accepted variants
40402 <second: feature smp=1 memory=0 done=1
40402 >second: accepted smp
40402 >second: accepted memory
40402 >second: accepted done
40403 >second: cores 2
40403 >second: new
random
40403 >second: variant duck
40403 >second: level 0 3 2
40404 >second: post
40404 >second: hard
40404 >second: ping 1
Impossible move , type = 0
40404 >second: force
40404 <second: Error (unknown command): cores
40404 <second: pong 1
New game (0): MayhemDuck 2.0 (UCI2WB)-MayhemDuck 2.0 (UCI2WB) (w)
40415 >first : computer
40415 >first : name MayhemDuck 2.0 (UCI2WB)
40415 >second: computer
40415 >second: name MayhemDuck 2.0 (UCI2WB)
40415 >first : black
40415 >first : time 18000
40415 >first : otim 18000
40415 >first : white
book hit = (NULL)
40415 >first : go
nps: w=-1, b=-1
40416 <first : Error (unknown command): black
40416 <first : Error (unknown command): white
40416 <first : 1 60 0 320 g1f3,f3a6
40419 <first : 2 -4 0 15366 g1f3,f3f6
40449 <first : 3 42 3 183087 g1f3,f3c6
40515 <first : 4 24 9 444264 g1f3,f3f6
42514 <first : 5 34 209 7363382 d2d4,d4c6
49334 <first : 6 34 891 29735460 d2d4,d4c6
49334 <first : move d2d4,
49334 <first : move d4c6
49334 >second: time 18000
49334 >second: otim 17308
book hit = (NULL)
49334 >second: usermove 49334 >second: d2d4,d4c6
49334 >second: black
49334 >second: go
49408 <first :
49408 <second: Error (unknown command): black
49408 <second: 1 32 0 472 g8f6,f6d5
49408 <second: 2 32 0 6343 g8f6,f6d5
49408 <second: 3 32 2 120342 g8f6,f6d5
49638 <second: 4 -17 30 1079749 g8f6,f6f3
51144 <second: 5 -10 180 6359619 g8f6,f6e4
58254 <second: 6 -10 891 29687636 g8f6,f6e4
58254 <second: move g8f6,
58254 <second: move f6e4
58254 >first : time 17308
58254 >first : otim 17308
book hit = (NULL)
58254 >first : usermove 58254 >first : g8f6,e4g6
58348 <second:
58348 <first : 1 48 0 608 g1f3,f3h6
58348 <first : 2 18 0 18018 g1f3,f3e4
58348 <first : 3 18 2 104204 g1f3,f3e4
58371 <first : 4 17 11 436048 b1c3,c3e4
61092 <first : 5 40 283 9580587 b1c3,c3c6
66907 <first : 6 40 865 28244192 b1c3,c3c6
66907 <first : move b1c3,
66907 <first : move c3c6
66907 >second: time 17308
66907 >second: otim 16642
book hit = (NULL)
66907 >second: usermove 66907 >second: b1c3,c3c6
67001 <first :
67001 <second: 1 7 0 649 d7d6,d6e3
67001 <second: 2 5 0 7510 e7e6,e6d5
67002 <second: 3 5 2 105008 e7e6,e6d5
68677 <second: 4 -34 176 5728215 d7d5,d5d2
75561 <second: 5 -34 865 30905914 d7d5,d5d2
75561 <second: move d7d5,
75561 <second: move d5d2
75561 >first : time 16642
75561 >first : otim 16642
book hit = (NULL)
75561 >first : usermove 75561 >first : d7d5,d2c5
75635 <second:
75635 <first : 1 63 0 883 g1f3,f3e6
75635 <first : 2 54 2 71058 c1f4,f4d7
75832 <first : 3 38 27 856860 c1g5,g5d7
76208 <first : 4 40 64 1982607 c1g5,g5d7
83920 <first : 5 40 835 28609901 c1g5,g5d7
83958 <first : 6 40 839 28731174 c1g5,g5d7
83958 <first : move c1g5,
83958 <first : move g5d7
GameEnds(28, Xboard: Forfeit due to invalid move: c1g5 (c1g5 via d7, `0) res=25, 4)
GE(28, Xboard: Forfeit due to invalid move: c1g5 (c1g5 via d7, `0) res=25, 4) bare king k=16 color=66
83961 >first : result 0-1 {Xboard: Forfeit due to invalid move: c1g5 (c1g5 via d7, `0) res=25}
83961 >second: result 0-1 {Xboard: Forfeit due to invalid move: c1g5 (c1g5 via d7, `0) res=25}
83961 >first : quit
84011 >second: quit
GameEnds(28, Xboard: Forfeit due to invalid move: c1g5 (c1g5 via d7, `0) res=25, 2)
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 »

When I was testing Mayhem earlier I got a bunch of bunch of GDK errors while resizing the xboard window for engine output.

Image
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 »

rgrosz789 wrote: Sun Feb 26, 2023 5:30 pm When I played a game using MayhemDuck2.0 for both engines, it still triggers an illegal move. It plays the same moves each time, and 3.Bg5 is clearly illegal.
Maybe there is something seriously wrong with my Linux system?!

I have tested numerous version of Mayhem engines, and rarely get past 3 moves:

Code: Select all

White  Black     result
1.6        1.6      UCI2WB: mayhem16duck died on me
1.7        1.7      xboard: forfeit due to illegal move 4.d4
1.7        1.8      xboard: forfeit due to illegal move 2.Nc3
1.8        1.7      xboard: forfeit due to illegal move 4
1.8        1.8      xboard: forfeit due to illegal move 2.Nc3
1.8        1.9      xboard: forfeit due to illegal move 2.Nc3
1.9        1.8      xboard: forfeit due to illegal move 8.Qg4
1.9        1.9      xboard failed: Segmentation fault (core dumped)
2.0        2.0      UCI2WB: mayhem20duck died on me
For the game with 1.9 versus 1.8 this message appeared in terminal

(xboard:4348): Atk-CRITICAL **: 14:55:13.495: atk_component_add_focus_handler: assertion 'ATK_IS_COMPONENT (component)' failed
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 »

The GTK errors could be caused by running a binary made for one distro in another, with slightly incompatible libraries. As long as they don't crash XBoard I would just ignore them.

What is more serious is that this version of XBoard appears to totally mess up the move it receives from the second engine. E.g. it receives d7d5,d5d2 from the second engine, but then it sends d7d5,d2c5 to the first. It is a mystery where this d2c5 comes from. Since g8f6,f6e4 becomes g8f6,e4g6 it seems to use the received Duck to-square for the from-square of the Duck move, and the rank number of the to-square it cooks up seems to come from the rank of the FIDE to-square, but how it pulls the file of the to-square out of the hat?! The insane thing is that from first to second everything works fine. While this is handled by exactly the same code.

I thought other people had used XBoard for Duck Chess, and I never received any complainst until now. I will try to figure it out.
MTaktikos
Posts: 59
Joined: Fri Oct 25, 2019 7:58 pm
Full name: Michael Taktikos

Re: Duck Chess

Post by MTaktikos »

hgm wrote: Mon Feb 27, 2023 9:22 am I thought other people had used XBoard for Duck Chess, and I never received any complainst until now. I will try to figure it out.
I use your newest version of Winboard (in Windows 10 OS), which you offered in this thread, and it works like a charm.
Have not tried the new Xboard version yet, and have expected that it has the same functions like Winboard, just written for Linux systems
rgrosz789
Posts: 121
Joined: Sat Dec 03, 2022 9:28 pm
Full name: Rick Groszkiewicz

Re: Duck Chess

Post by rgrosz789 »

rgrosz789 wrote: Sun Feb 26, 2023 9:08 pm Maybe there is something seriously wrong with my Linux system?!
I have four computers running Linux, so I decided to try setting things up on the laptop that I use to control my coffee roasters. It is a Toshiba M780 from 2010 ...

I never actually got to play a single move of Duck Chess. None of the engines load - sometimes I get permission denied, sometimes xboard crashes.

Here are my notes:
Linux Mint - Toshiba M780
02/26

sudo apt update
sudo apt install xboard (2016 version)
sudo apt install build-essential

standard xboard software uses Polyglot rather than UCI2WB as UCI adapter.

Downloaded latest UCI2WB source from HGM
http://hgm.nubati.net/cgi-bin/gitweb.cg ... ;a=summary
Then run 'sudo make install', which copies executable to /usr/local/bin

Downloaded the executable file for xboard with Duck chess from HGM
http://hgm.nubati.net/transfer/xboard.gz

That xboard can't locate images for chess pieces
Need to extract source files for xboard with Duck chess from HGM:
http://hgm.nubati.net/transfer/xboard-4.9.1.tar.gz

Copy all files from the svg directory in the distribution tar ball to
/usr/local/share/games/xboard/themes/default/

Hmmm - that directory doesn't exist?!
sudo mkdir /usr/local/share/games
sudo mkdir /usr/local/share/games/xboard
sudo mkdir /usr/local/share/games/xboard/themes
sudo mkdir /usr/local/share/games/xboard/themes/default/
sudo cp ./chess-sources/xboard-4.9.1/svg/*.* /usr/local/share/games/xboard/themes/default/

Need to save the xboard settings
sudo mkdir /usr/local/share/etc
sudo cp ./chess-sources/xboard-4.9.1/xboard.conf /usr/local/share/etc
xboard still says it can't save the settings!

Need to set execute permission for all versions of chess engines
Then copy files to correct location
sudo cp -p ./Downloads/MayhemDuck-2.0/mayhemduck-2.0-x86-linux-64bit /usr/games

Also used my compiled Fairy Stockfish for Duck (from Dell XPS 8300)
sudo cp -p ./Downloads/FSFDuck /usr/games

Nothing works!



Not much appears in xboard.debug either:


locale = en_US.UTF-8
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
shuffleOpenings = 0
shuffleOpenings = 0
Version: xboard 4.9.1 + fairymax ()
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
StartChildProcess (dir=".") fairymax
435 >first : xboard
protover 2
535 <first : tellics say Fairy-Max 5.0b
535 <first : tellics say by H.G. Muller
536 <first : feature myname="Fairy-Max 5.0b"
536 >first : accepted myname
536 <first : feature memory=1 exclude=1
536 >first : accepted memory
536 >first : accepted exclude
536 <first : feature setboard=0 xedit=1 ping=1 done=0
536 >first : accepted setboard
536 >first : accepted xedit
536 >first : accepted ping
536 >first : accepted done
536 <first : feature variants="normal,nocastle,shatranj,asean,makruk,cambodian,ai-wok,courier,knightmate,capablanca,gothic,janus,falcon,cylinder,berolina,super,seirawan,spartan,great,light-brigade,king-of-the-hill,bifurcator,team-mate,los-alamos,ciccolini,mexican,grande-acedrex,roman,almost-wildebeest,fairy"
536 >first : accepted variants
536 <first : feature option="Resign -check 0"
536 >first : accepted option
536 <first : feature option="Resign Threshold -spin 800 200 1200"
536 >first : accepted option
536 <first : feature option="Claim draw after -spin 50 0 200"
536 >first : accepted option
536 <first : feature option="Ini File -file /usr/share/games/fairymax/fmax.ini"
536 >first : accepted option
536 <first : feature option="Multi-PV Margin -spin 0 0 1000"
536 >first : accepted option
536 <first : feature option="Variant fairy selects -combo FIDE-Clobberers /// Clobberers-FIDE /// FIDE-Nutters /// Nutters-FIDE /// Clobberers-Nutters /// Nutters-Clobberers /// FIDE-Rookies /// Rookies-FIDE /// Clobberers-Rookies /// Rookies-Clobberers /// Nutters-Rookies /// Rookies-Nutters"
536 >first : accepted option
536 <first : feature option="Makruk rules -combo makruk /// Cambodian /// Ai-wok"
536 >first : accepted option
536 <first : feature option="Dummy Slider Example -slider 20 0 100"
536 >first : accepted option
536 <first : feature option="Dummy String Example -string happy birthday!"
536 >first : accepted option
536 <first : feature option="Dummy Path Example -path ."
536 >first : accepted option
536 <first : feature option="Automatic persistent-hash dialog -check 0"
536 >first : accepted option
536 <first : feature option="Info -button"
536 >first : accepted option
536 <first : feature option="Save in hash file -button"
537 >first : accepted option
537 <first : feature option="Clear Hash -button"
537 >first : accepted option
537 <first : feature done=1
537 >first : accepted done
538 >first : memory 68
538 >first : new
random
538 >first : level 40 5 0
538 >first : post
538 >first : hard
538 >first : ping 1
Impossible move , type = 0
584 <first : pong 1
26245 >first : quit
Unload first
StartChildProcess (dir=".") /usr/games/FSFDuck
26251 >first : xboard
protover 2
GameEnds(30, xboard exit, 2)

Image
Retired actuary and software developer. I love chess, coffee, wine and food