Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: mtd/pvs hybrid?

Author: Pat King

Date: 05:25:26 08/29/01

Go up one level in this thread


On August 28, 2001 at 07:02:40, Andrew Williams wrote:

>>On August 27, 2001 at 17:26:24, Andrew Williams wrote:
>>
>>My MTD(f) program checks any move which it is about to make, if it didn't
>>generate it using the usual generate_moves() function. So any hash or killer
>>move is checked to see if:
>>
>>(a) There is a piece on the from square.
>>(b) The piece on the from square is capable of making the proposed move.
>>(c) There are no intervening pieces which would prevent the move
>>(d) etc (Manchester City have won again tonight, and are top of the League
>>    and I've been celebrating, so I'm not able to recall the rest of the
>>    conditions - hopefully you get the idea)
>>
>OK. Recovered now, so:
>
>(d) No friendly piece on the target square.
>(e) If it's a capture, there must be an enemy piece on
>    the target square...
>(f) ... unless it's ep, in which case check for the pawn
>    on the ep square
>(g) If it's a promotion, make sure it's a pawn that's moving
>    and that it's on the 7th rank now.
>(h) etc etc
>
>Regards
>
>Andrew

Yes, of course Zotron tests the legality of hash moves within the search. My
assumption has been that the hash entry for the root position must always be
valid, and this is the way I've passed my engine's move back to the calling
functions. Works 99.999% of the time, and fails spectacularly 0.001% of the
time. I've had a devil of a time catching that 0.001%.

Pat



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.