Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Thoughts about board representations...

Author: Tom Kerrigan

Date: 10:56:52 02/11/00

Go up one level in this thread


On February 11, 2000 at 13:51:06, Brian Richardson wrote:

>I looked at bitmaps vs fanout vs pointer (but not x88 I must confess) and other
>methods fairly extensively about 2 yrs ago when first deciding to resurrect my
>chess program.  Bitmaps are not clear winners when only looking at move
>generation (in fact Gnuchess' pointer scheme is quite fast and rather elegant).
>
>However, bitmap's real advantages come, IMHO, in the eval().  As Bob Hyatt as
>pointed out, testing for a passed pawn is simple and fast:
>
>if(!And(mask_pawn_passed_b[sq],tree->wpawns))
>
>What would this test look like with the pointer/piece list scheme?

At the beginning of my eval() function, I usually set up an array of pawn ranks,
e.g.:

pawn_rank[WHITE][A_FILE + 1]

contains the rank # of the least advanced white pawn on the A file.

If you have an array like this, it's pretty easy to evaluate pawn structure. You
can't detect passed pawns with one 64-bit operation, but it's still pretty fast.

-Tom



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.