Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fast check detection in bitboard engine

Author: Robert Hyatt

Date: 09:30:34 12/11/03

Go up one level in this thread


On December 11, 2003 at 09:35:27, Sune Fischer wrote:

>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);

That is the q-search.  I used to do it in the normal part of the search
also.  That was the part that was changed a long while back...


>
>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 extend when I check the opponent.  That is a different test than asking
"am I in check after making that move?"


>
>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?

Why would I care that I am in check if a legal move fails high getting me
out?  I've already extended at the previous ply for giving the check in the
first place.


>
>-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.