icdroneng

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
hgm
Posts: 28454
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: icdroneng

Post by hgm »

This does look like an ICS bug, though...

Maybe we should just fix it on that end.
bnemias
Posts: 373
Joined: Thu Aug 14, 2008 3:21 am
Location: Albuquerque, NM

Re: icdroneng

Post by bnemias »

Peter Skinner wrote:That link no longer works. While I have no issues with Winboard at all, I like trying new things out :)
Fixed. Thanks.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: icdroneng

Post by Michel »

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).
User avatar
hgm
Posts: 28454
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: icdroneng

Post by hgm »

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.
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.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: icdroneng

Post by Michel »

What exactly did icsDrone send as move that the ICS choked on here?
One would have to look at the log of the icsdrone running micromax to know this.

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] = '=';
    }
}
So it appears to convert frfrp to frfr=p
User avatar
hgm
Posts: 28454
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: icdroneng

Post by hgm »

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.