Author: Matthew McKnight
Date: 13:46:37 12/10/03
Go up one level in this thread
On December 10, 2003 at 16:40:45, Robert Hyatt wrote: >On December 10, 2003 at 16:14:11, Gerd Isenberg wrote: > >>On December 10, 2003 at 15:38:43, Robert Hyatt wrote: >> >>>On December 10, 2003 at 12:54:13, Romang Jean-Francois wrote: >>> >>>>Hello, >>>> >>>>Is there a fast technique to detect that a king is in check in a bitboard engine >>>>? In my engine I generate all capture moves and try them to see if the king can >>>>be captured...but this seems very slow ! >>> >>>Do it backward. Find the king. Ask does a knight on this square attack >>>a square that contains a knight? If so that knight is checking the king. >>>Repeat for all your different piece types. >>> >>> >>>> >>>>I use check detection mainly in two parts of the engine : >>>>- During move generation to avoid generating illegal moves >>>>- To activate check extensions >>>> >>>>Is there a way to avoid check detection during move generation ? >>> >>>Don't do it. When you go to the next ply, and you capture a king there, >>>return a special score to the previous ply that says "that move was >>>illegal, unmake it and try something else." >> >>you really generate and even try all pseudo-legal moves if in check? > >No. If I know I am in check to start with, I have a GenerateCheckEvasions() >generator that only generates legal moves out of check. Avoids the high >overhead of making each illegal move and advancing to the next ply to >generate captures to refute them... > > In addition, if you use something like checkEvasions(), then you shouldn't have to check for legality after making these moves. This saves a little bit of time too. >> >>> >>>> >>>>Thank you :) >>>>Jean-Francois
This page took 0.01 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.