Computer Chess Club Archives




Subject: Re: Is pondering unfair in engine matches on a PC?

Author: Robert Hyatt

Date: 05:50:21 02/20/01

Go up one level in this thread

On February 20, 2001 at 07:48:19, Leen Ammeraal wrote:

>On February 19, 2001 at 18:35:30, Robert Hyatt wrote:
>>On February 19, 2001 at 14:18:15, Leen Ammeraal wrote:
>>>On February 19, 2001 at 14:04:44, Mogens Larsen wrote:
>>>>On February 19, 2001 at 13:07:27, Leen Ammeraal wrote:
>>>>>Does that mean that, with pondering on, my program, which currently does not
>>>>>implement pondering, get less computer time than its opponent if the
>>>>>latter implements pondering?
>>>>Not necessarily. It's possible to switch off pondering with most programs.
>>>Yes, I know. That is why I had written "with pondering on" in my
>>>question above. If other people use my program in a match
>>>against others, the chances are that they will play with
>>>pondering on, with a big disadvantage for my program because
>>>it cannot ponder. So I am afraid, I cannot afford NOT implementing
>>>pondering, only so far I don't have a clue how to begin.
>>>Any help would be very welcome.
>>take the PV from the last search where you made a move.  Take the second move
>>and temporarily make it.  Then search for a move for yourself.  You are
>>"assuming" that your opponent plays what you think was best, which is pretty
>>reasonable.  If a move is entered while the search is in progress and you are
>>pondering, stop, check to see if the move matches the predicted move.  If so,
>>you can move a lot quicker since you have been thinking about the move for a
>>long time on the opponent's clock.  If the move is different, abort the search,
>>start over using the right move.
>Thank you for this explanation. But, after 'printing' my own move,
>how can I go on searching while at the same time keeping an eye
>on any new input from the opponent? Is there some function which I
>can call to see if there is input available without actually
>reading it, or at least, which returns immediately?
>As far as I know there is not such a standard library function
>in C(++). If this is the case, is there one in VC++?

you want to look at peekNamedPipe(). It lets you ask the question "is there data
in the input buffer for me to read?" without blocking your process if the answer
is "no".

IE look at crafty's source, utility.c, for that function name to see how I
use it in windows.

This page took 0.03 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.