This does look like an ICS bug, though...
Maybe we should just fix it on that end.
icdroneng
Moderator: Ras
-
hgm
- Posts: 28454
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
bnemias
- Posts: 373
- Joined: Thu Aug 14, 2008 3:21 am
- Location: Albuquerque, NM
Re: icdroneng
Fixed. Thanks.Peter Skinner wrote:That link no longer works. While I have no issues with Winboard at all, I like trying new things out :)
-
Michel
- Posts: 2292
- Joined: Mon Sep 29, 2008 1:50 am
Re: icdroneng
In any case awaiting an ICS fix, icsdrone should now be more
careful when parsing the board.
https://sourceforge.net/projects/icsdrone/
Eric Mullins also contributed to this release with a patch which makes the
spurious empty lines in Windows console output go away (this patch
was already included in his 0.27 compiles).
careful when parsing the board.
https://sourceforge.net/projects/icsdrone/
Eric Mullins also contributed to this release with a patch which makes the
spurious empty lines in Windows console output go away (this patch
was already included in his 0.27 compiles).
-
hgm
- Posts: 28454
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: icdroneng
I have been trying to fix this problem in the ICS code, but I cannot even reproduce it. What exactly did icsDrone send as move that the ICS choked on here? I tried a plain long-algebraic move without any suffix (h7g8), but then it promotes to Queen. I tried h7g8= and then it says"Illegal move". When I try a . as promo char it says "Don't unerstand that move". In the board you show above it seems to have a space on c1.jshriver wrote:Double checked and using 0.27. Here is a sample log from just now. I also noticed that it always happens when playing against micromax linux build, so maybe that's the root of the problem.
-Josh
Tue Oct 23 18:42:58 2012:DEBUG:Deleting NULL timer. Ignoring.
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: fics% \012\015
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: micromaxjs(1133) kibitzes: promotion\012\015
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: fics% \012\015
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: micromaxjs(1133) kibitzes: depth=12 score=5.53 time=6.33 node=661233 speed=104460 pv=c2c1\012\015
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: fics% \012\015
Tue Oct 23 18:42:58 2012:DEBUG:ics->icsdrone: <12> -------- -----k-p -------- -------- p----PP- ---KP--- -B------ r- ----- W -1 0 0 0 0 0 4 failejs micromaxjs 1 1 1 6 7 18 7 47 P/c2-c1 (0:01) c1= 0 1\012\015
Tue Oct 23 18:42:58 2012:DEBUG:Deleting NULL timer. Ignoring.
Tue Oct 23 18:42:58 2012:DEBUG:Deleting NULL timer. Ignoring.
Tue Oct 23 18:42:58 2012:DEBUG:Deleting NULL timer. Ignoring.
Tue Oct 23 18:42:58 2012:DEBUG:Deleting NULL timer. Ignoring.
Tue Oct 23 18:42:58 2012:DEBUG:icsdrone->engine: time 1800\012otim 700\012
Tue Oct 23 18:42:58 2012:ERROR:Illegal argument for piece_to_12
Tue Oct 23 18:42:58 2012:INFO:Killing computer
Tue Oct 23 18:42:58 2012:DEBUG:icsdrone->engine: quit\012exit\012
Tue Oct 23 18:42:58 2012:DEBUG:Computer has not exited yet. Sleeping 200ms.
Tue Oct 23 18:42:59 2012:DEBUG:Computer exited with status 0.
Tue Oct 23 18:42:59 2012:DEBUG:Closing proxy.
-
Michel
- Posts: 2292
- Joined: Mon Sep 29, 2008 1:50 am
Re: icdroneng
One would have to look at the log of the icsdrone running micromax to know this.What exactly did icsDrone send as move that the ICS choked on here?
The filter that icsdrone applies to a computer move before sending it to the ICS seems to be the following.
Code: Select all
void ConvCompToIcs(move_t move)
{
if (strlen(move) == 5 && (move[4] == 'q' || move[4] == 'r' ||
move[4] == 'b' || move[4] == 'n' ||
move[4] == 'Q' || move[4] == 'R' ||
move[4] == 'B' || move[4] == 'N' ||
move[4] == 'k' || move[4] == 'K')) {
move[6] = '\0';
move[5] = move[4];
move[4] = '=';
}
}-
hgm
- Posts: 28454
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: icdroneng
Yes, but the problem was that micro-Max does not send a promo char. so strlen(move) is not 5, but 4, and this whole code should not be triggered.