Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fast check detection in bitboard engine

Author: Sune Fischer

Date: 06:35:27 12/11/03

Go up one level in this thread


On December 11, 2003 at 09:08:50, Robert Hyatt wrote:

>On December 11, 2003 at 04:43:32, Andreas Guettinger wrote:
>
>>On December 10, 2003 at 22:42:05, Robert Hyatt wrote:
>>
>>
>>>>Could you point me to where is this going on? I can't seem to find it when
>>>>looking over the move generation functions or the search function.
>>>
>>>
>>>Hmmm.  Neither can I.  I don't remember where/when I stopped doing that.

You might have changed it recently, but in the qsearch of Crafty 19.01, line 72,
it says:
if (Captured(*movep) == king) return(beta);

I think you also do it for perft, except at the leaf.
I guess it might be a good trick if the illegal move percentage is low enough.

>>Maybe at the time you realized it's faster to make an incheck() test than
>>updating the extension counters, initailizing the next search and generating all
>>the moves for the next ply?
>
>Actually, I looked back at all my old notes.  It had to do with null-move
>search.  It was possible for a null-move to fail high even after making
>a move at the previous ply that was illegal, and that caused problems.  I
>don't remember exactly what was happening, but apparently it was enough for
>me to start "checking".

How did you do check extensions without knowledge of being in check?

I can see how you can have the search return this knowledge if it finds an
illegal move (actually it could just have been a pinned piece), but suppose you
get lucky and fail high one on of the legal check evaders as the first move.
How do you discover that you were in check, do you force a nullmove first to
test it?

-S.



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.