H.G.Muller wrote:defrag1971 wrote:- At the Startup dialog I cannot specify the second edited engine
I don't understand what this means. What is an 'edited engine'? And which engine would this be? What exactly means 'cannot'? Is the combobox greyed out?
No, it's not greyed out.
I added Stockfish as main engine ("Duck Chess" -fcp "Duck Chess.exe" -fd "\" /variant=duck), when I start the program in the Specify Engines startup dialog there are two fields, it shows Stockfish as a choice only in the first field.
- The Duck shows as a black squareDuck images are only provided for board sizes Petite, Middling and Bulky. (Like most fairy pieces.) In other sizes is shows up as a black square, because internally the Duck is implemented as 'inaccessible square'.
Ok resizing I can see the Duck, thanks.
- In edit mode I can place the Duck one the same square of the moved piece, but it's not actually allowed (i.e. movelist 1. e4,e4 e5,e5 2. Nf3,f3 )Indeed, there is no legality testing on the Duck move yet.
Ok.
also, if a king moves in check, even if the Duck covers the check, still Winboard thinks it's illegal. In Duck chess there is no check move restriction.
Again, it doesn't look to me like g3,g2 is illegal. So if the engine rejects it, it would be an engine bug. Provided the engine got sent the correct move. Which can only be checked in the winboard.debug file (but for which there is little reason to doubt it).
Here's the debug from a simple Sicilian defence opening, from what I understand of it Winboard sends the move (c7c5,e2b5) and the engine answers it's illegal.
But maybe the move should have been c7c5,c5e2 because it is where I placed the Duck (e2 square).
1393012 >first : time 300
1393012 >first : otim 300
book hit = (NULL)
1393028 >first : go
nps: w=-1, b=-1
1393028 <first : info string classical evaluation enabled
1393028 <first : 1 53 0 831 1 92333 0 e2e3,e3e2
1393043 <first : 2 92 2 1839 2 65678 0 d2d4,d4a3 a7a6,a6d2
1393059 <first : 3 146 4 2737 3 60822 0 d2d4,d4e3 a7a6,a6d2 e2e4,e4e2
1393075 <first : 4 176 5 3409 4 64320 0 d2d4,d4e3 a7a6,a6d2 e2e4,e4e2 a6a5,a5a3
1393124 <first : 5 153 9 5720 5 62173 0 d2d4,d4e3 d7d6,d6d2 e2e3,e3d7 a7a6,a6a3 g1f3,f3a7
1393250 <first : 6 123 19 9917 6 50340 0 d2d4,d4e3 d7d6,d6a3 c2c4,c4d7 e7e6,e6d2 e2e4,e4e2 a7a6,a6a3 b2b3,b3b2
1393829 <first : 7 125 76 26126 7 34062 0 e2e4,e4d6 g8f6,f6c3 d2d3,d3d6 e7e6,e6d4 f2f4,f4e2
1394829 <first : 8 76 176 56471 8 31976 0 e2e4,e4d6 e7e6,e6d3 b1c3,c3d6 a7a6,a6d3 g1f3,f3d6 b8c6,c6d3 g2g3,g3d6 g8f6,f6d3
1395895 <first : 9 323 278 100834 12 36271 0 e2e4,e4d6 b8c6,c6f3 e4e5,e5d6 c6e5,e5d3
1396129 <first : 10 238 301 112943 10 37522 0 e2e4,e4d6 b8c6,c6f3
1396145 <first : 10 238 301 113141 10 37476 0 e2e4,e4d6 b8c6,c6f3
1396145 <first : move e2e4,
1396145 <first : move e4d6
silence
1397039 >first : lift c7
1397039 <first : highlight 8/8/2Y5/2Y5/8/8/8/8
1397585 >first : put c5
1398101 >first : time 300
1398101 >first : otim 104
book hit = (NULL)
1398101 >first : usermove 1398101 >first : c7c5,e2b5
1398101 <first : Illegal move: c7c5,e2b5
I think the code to fix is this:
if((boards[moveNum][m[6]-ONE][m[5]-AAA] < BlackPawn) == (boards[moveNum][m[1]-ONE][m[0]-AAA] < BlackPawn)) // move is kludge to indicate castling
snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d\n", m[0], m[1] - '0', // convert to two moves
m[2], m[3] - '0',
m[5], m[6] - '0',
m[2] + (m[0] > m[5] ? 1 : -1), m[3] - '0');
Sometimes it kicks in above, instead of:
} else if(gameInfo.variant == VariantDuck)
snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d%s\n", m[0], m[1] - '0', // convert to two moves
m[2], m[3] - '0',
m[2], m[3] - '0',
m[5], m[6] - '0', c);