Author: KarinsDad
Date: 09:27:46 04/30/99
Go up one level in this thread
On April 29, 1999 at 17:23:12, Charles L. Williams wrote: [snip] > > >At first I generated only legal moves using a "check vector," a line of bits >between the checked king, leading to and including the attacking piece. This >could be used to AND with any piece's generated moves, to eliminate the >illegals. A knight didn't have a vector, only one bit for its position. It >became complicated when it came to pins, so I switched to generating all >possible moves, and checking the legality at the next ply. > >Why? > >Because that was the general consensus on how to do it. Now I'm not so sure. I >never have been entirely comfortable with generating illegal moves, and sorting >them out later. On the other hand, if I get a lot of cutoffs, I never have to >find out. Yes, the cutoffs would be the reason to do this. However, I'm hoping that I can quickly figure out the legal ones (maybe 10% to 20% slower than doing the pseudo legal ones), so that I regain some of this on the non-cutoff nodes, I regain some of this on the partial-cutoff nodes, I regain some of this in the evaluation code, and I regain some of this due to instantaneous checks of singular extensions. Yes, the pins are the most complicated portion of this (although they are not that bad with bitboards) and the piece attack tables sound similar to your check vectors (although I do not need an AND since the 16 bit value for all 16 pieces on a given side can be compared with zero for a given square). Also, my search technique is set up extremely different than a lot of other searches that I have read about. Therefore, there are certain positions where I need to know exactly which legal moves are available. Thanks for posting. I enjoy reading how other people approach the same problem. KarinsDad :) > > >Chuck
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.