Author: Inmann Werner
Date: 13:36:03 12/30/98
Go up one level in this thread
On December 30, 1998 at 13:41:49, Robert Hyatt wrote:
>On December 30, 1998 at 09:27:55, Inmann Werner wrote:
>
>>On December 30, 1998 at 00:00:25, Robert Hyatt wrote:
>>
>>>On December 29, 1998 at 18:01:12, Inmann Werner wrote:
>>>
>>>>Hello.
>>>>
>>>>I played today with my engine and winboard on ICC. If I play one game, and then
>>>>restart ICC everything is ok.
>>>>If I play two games in line, I loose on time. A checked the Winboard debug File,
>>>>and it gave me seconds before loosing on time the command
>>>>time 5800
>>>>Does that not mean, i have 58 secs left?
>>>>The problem is, my program parses the time command and uses it.
>>>>What could be wrong?
>>>>
>>>>Werner
>>>
>>>
>>>lots of answers:
>>>
>>>1. lag. are you running with timestamp? if not, lag can cause this. If
>>>you are using timestamp, go to 2 below.
>>>
>>>2. programming bugs that prevent you from properly sending a move to
>>>xboard/winboard, such as forgetting to either disable buffering, or forgetting
>>>to do a fflush(stdout). And screwing up on input so that you miss a move.
>>>This happens frequently if you use scanf() type buffered input.
>>>
>>>too many of us are running on ICC using xboard/winboard for there to be such
>>>gross bugs in it, so it is more likely that you are simply hitting some sort
>>>of bug in your interface...
>>
>>sure it can be some bug by me. but how? I use timestamp.
>>I got the move of the opponent and the time 5800 command and then set my
>>internal clock to 58 sec rest time and began to think. after 1 second, I lost on
>>time. The winboard also showed 1 sec remaining, but in the logfile was 58 secs.
>>I do not understand it any way.
>>I give my moves to winboard with normal printf("move E2E4\n"). At the beginning
>>of the program I use setbuf(stdout,NULL) to disable buffering. I make no fflush
>>at all. Is it needed?
>>On Input I use
>>rr=read(0,&buffer,1) and nothing else.
>>Is there something wrong about it?
>>
>>Werner
>>
>>do anybody of you use the "time" command comming from winboard to update your
>>time?
>
>I use both time _and_ otim in crafty. One thing you didn't mention: it may
>be that at the point in time when winboard sent you the time 5800 message, that
>was correct. Nothing says you read it instantly however. That is a common
>glitch using buffered I/O. You aren't (above) but there are lots of ways to
>blow up the input (ie you may "read" multiple commands with a single read(), or
>you may read part of a command and have to come back later when the rest of it
>has arrived...
Thanks, you gave me the tip!
It was much simpler. The time command comes some time after the move of the
opponent, and i store it. But I use it for the next! search, so i am always one
move behind in time. A simple and idiotic bug!!
I want to excuse me of the ICC and winboard programmers. It my fault.
I should always think first on my bugs, but this time, I was blind.
Excuse again.
Werner
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.