Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Way of compressing attacks bitboards

Author: Russell Reagan

Date: 21:24:42 05/06/04

Go up one level in this thread


On May 06, 2004 at 20:05:03, Robert Hyatt wrote:

>I don't follow.  I currently use 6-bit indices _everywhere_.  Because the two
>endpoints are moot.  We're not changing that.  Just squeezing out the bit for
>the square where the piece in question sits...  it is meaningless and could be a
>zero or 1 and produce the same attacks...

He is saying you can't always get correct attacks from 5 bits. Another way of
putting it is that you can't always squeeze out the square that the attacker
sits on, because it may have already been squeezed out.

Let's say you start with all 8 bits for the 1st rank. You squeeze out the end
bits, squares a1 and h1. You want to get attacks for a rook on a1. You can't
squeeze out the square the attacker is on (a1), because you already squeezed it
out.

Put a rook on a1 and try to get correct horizontal attacks from 5 bits in all
cases for the 1st rank. Take a simple example, 5 bits = 00000. What is the
attack bit pattern for the 1st rank? Here is the board. You get 5 bits worth of
rank state info, plus the implied rook on a1.

  abcdefgh
8 --------
7 --------
6 --------
5 --------
4 --------
3 --------
2 --------
1 R-----??
   ^^^^^
   12345 <-- You only get 5 bits

What is the correct attack bitboard for this position?

- represents a 0 bit
# represents a 1 bit

Choice A:
--------
--------
--------
--------
--------
--------
--------
-#######


Choice B:
--------
--------
--------
--------
--------
--------
--------
-######-

Choice C:
Impossible to know without more information.



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.