Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: BitBoards

Author: James Swafford

Date: 08:33:56 05/29/99

Go up one level in this thread


On May 29, 1999 at 07:55:46, Frank Phillips wrote:

>What is the best way to extract the squares pieces are on from a piece-bitboard?
> For example, if whiteKnights is the bitboard representing where white knights
>are, how do you find the square the knights are on.  Looping through the 64 bits
>with a mask for each possible square on the board seems slow, even if you can
>break out once the bitboard is empty.


do something like this:

my_board=position.whiteknights;
while (my_board) {
  // get a square
  sq=MSB(my_board); // gets the most significant bit
  // clear that square from the board
  my_board^=mask[sq]; // XOR operation
  .
  .
  .

}


If you know the squares you are extracting tend to be on
the low order side of the board, you may want to use
"LSB( )" to extract least significant bits.

I've got some more information on this on my site:

http://home.fda.net/~wzrdking/chessprg.htm

Good luck!  :-)

--
James



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.