Author: Tord Romstad
Date: 09:14:14 10/12/03
Go up one level in this thread
On October 12, 2003 at 11:49:49, Omid David Tabibi wrote: >I believe this will result in some speedup in normal search, but the big issue >in doing checks in quiescence will still remain generating checking moves not >check evasions. I haven't found a good way for doing so using the 32 bit attack >tables. In your eval, do some ray tracing from the king's position to determine the squares where the opponent's pieces would check the king, and to locate pieces which threaten to deliver a discovered check. Store this information in a couple of arrays. I have two such arrays, CheckSquares[] and DiscCheckSquares[]. The entries in CheckSquares are bitfields with one bit for each piece type, and the bit is set if a piece of the corresponding type would deliver a check on this square. The entries in DiscCheckSquares are all zero, except for the entries for squares which contain a piece which can deliver a discovered check. For these pieces, the array entry contains the absolute value of the step direction from the piece to the opponent's king. With these arrays combined with your attack tables, it should be relatively easy to write an efficient check generator. Besides, the information you compute is also very useful in the king safety eval. Of course, you could also try to update the arrays incrementally instead of computing them at every node. Tord
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.