Author: Andrew Williams
Date: 04:02:40 08/28/01
Go up one level in this thread
On August 27, 2001 at 17:26:24, Andrew Williams wrote: >On August 27, 2001 at 12:43:41, Pat King wrote: > >>Zotron has gotten brittle enough to justify a big overhaul. One of my constant >>problems have been occasional spectacular hash errors, which occasionally find >>their way to the root, resulting in the engine occasionally attempting to make >>an illegal move. The way the current program is structured, I HAVE to use the >>hash table. In the next version, I'd like to isolate the hash table a bit more >>from the rest of the program in the hope of avoiding these problems, and >>eventually finding the @#$^%^^@ bug(s). Unfortunately, I use mtd, which relies >>rather heavily on the hash. I think I can get around this by having mtd calling >>pvs, w/ pvs using the typical move pv[][] structure. Has anyone done anything >>like this before? Am I wasting my time? >> >>Pat > >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
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.