Computer Chess Club Archives


Search

Terms

Messages

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

Author: Tony Werten

Date: 01:40:08 02/02/01

Go up one level in this thread


On February 01, 2001 at 10:37:04, Robert Hyatt wrote:

>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.

Actually, I would guess you have to check after 1 and 2 to see if the moving
piece wasn't pinned.

Tony



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.