Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bitboards, pre-computing moves, and blocked squares?

Author: Vasik Rajlich

Date: 01:36:11 12/02/04

Go up one level in this thread


On November 30, 2004 at 16:33:20, Gerd Isenberg wrote:

>On November 30, 2004 at 12:51:38, Andrew N. Hunt wrote:
>
>>Hi!
>>
>>I've recently implemented bitboards (standard and rotated) and have a question
>>about pre-computing moves which contain blocked squares. Let's say I have the
>>occupied rank:
>>
>>bQ, wN, _, wR, _, bP, bN, _
>>
>>and I want to find the valid moves for the white Rook. How do I handle modifying
>>its bitboard rank: 11010110 to remove the blocked squares and only store the
>>available squares: 01101100? (which I can then And with the white/black pieces
>>to find valid Rook moves)
>
>Additionally to the other posts i like to mention the x^(x-2) trick to generate
>rank attacks in msb direction:
>
>        msb      lsb
> occupied 11010110
>-attacker 00010000 (or &~attacker if attacker must not be a member of occupied)
>          11000110 => rook reset in occupied
>-attacker 00010000
>          10110110 => get some bits from next borrow
>^occupied 11010110
>          01100000 => attacks in msb direction
>
>Whether this is the left or right direction depends on your bitboard mapping - i
>call it right attacks. Similar to Steffan's Kogge-Stone algorithms this works
>with multiple rooks on a rank too. To perform the rank- or bytewise trick with
>the whole bitboard, one has to use SIMD instructions (vector of 8 bytes, eg.
>MMX/SSE2 psubb) or a SWAR algorithm with some 0x00ff...00ff and 0xff00...ff00
>masks.
>
>Cheers,
>Gerd
>
>

Cool trick. But - is there also one for "left attacks"? If not, it's not really
useful, since you'll need a lookup anyway - so might as well get the whole rank.

Or do I miss something?

Vas

>
>>
>>Maybe I'm missing something obvious... :-?
>>
>>Many thanks!
>>
>>
>>
>>
>>
>>ah.
>>
>>--------------------------------------------------------------------=
>>Andy Hunt
>>Manager, Electronic Documentation
>>Wolfram Research, Inc.
>>Voice: 217-398-0700  ext.260;  Fax:  217-398-0747
>>Email: andy@wolfram.com; http://www.wolfram.com/
>>--------------------------------------------------------------------=
>>
>>Power corrupts.  Absolute power is kind of neat.
>> -- John Lehman, Secretary of the Navy, 1981-1987



This page took 0.01 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.