Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 0x88 and move generator speed - My results

Author: Robert Hyatt

Date: 07:37:04 02/01/01

Go up one level in this thread


On February 01, 2001 at 03:40:05, David Rasmussen wrote:

>On February 01, 2001 at 00:28:39, Robert Hyatt wrote:
>>
>>you need one more test.  How quickly can you generate _only_ capture
>>moves?  That is the biggest part of the total move generation process,
>>because of the q-search.  And that is a place where bitmaps really shines
>>brightly.  IE I can generate captures _just_ as quickly as I can generate
>>non-captures.  I don't have to cull non-captures or anything, after the
>>fact... I just never generate them in the first place...
>>
>>0x88 does great at generating everything.  It loses its advantage and then
>>some when you take generating only captures.  I also can generate legal-only
>>moves without doing in-check tests...
>
>How do you do that? Generate legal-only moves without doing in-check tests, that
>is.

You can look at my code named "GenerateCheckEvasions()" but the idea is
this (simplified and maybe wrong):

1.  If I am checked by a single piece, capture it.

2.  If I am checked by a single sliding piece, interpose.

3.  If I am checked by either 1 or two pieces, move the king out of the check.

for 3, you might think that I have to check for legality after generating a
king move, but it isn't needed.  If the checking piece is a slider, I have to
move in any direction but +/- the checking direction.  Bitmaps handle all of
this easily, so that I can produce moves that I _know_ are legal.



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.