Author: Omid David Tabibi
Date: 17:28:02 08/23/03
Go up one level in this thread
On August 23, 2003 at 19:41:25, Sune Fischer wrote: >On August 23, 2003 at 19:33:28, Omid David Tabibi wrote: > >>On August 23, 2003 at 17:29:11, Sune Fischer wrote: >> >>>On August 23, 2003 at 17:12:32, Uri Blass wrote: >>>> >>>>Note that I do not like a piece list of 32 squares because it means that even >>>>after having the attack information I cannot get the information if the square >>>>is attacked by a rook directly and I need to look at the squares of the >>>>attackers to see the type of the piece. >>> >>>There are max 32 pieces on the board, so you just do >>>if (ix_attack_sq[sq] & ix_pc[ROOK]) ... >>>that gives you a 32 bit piece list of rooks (black and white) attacking that >>>square. >>>If you want just white rooks: >>>if (ix_attack_sq[sq] & ix_pc[ROOK] & ix_co[WHITE]) .... >>>and so on. >>> >> >>Each side can have maximum 16 pieces, initially: >> >>8 pawns >>2 knights >>2 bishops >>2 rooks >>1 queen >>1 king >> >>elegantly fitting in your table. But how do you handle pawn promotions? >> >>E.g., how do you represent the following pieces in the 16 bits? >> >>6 pawns >>3 knights >>2 bishops >>2 rook >>2 queens >>1 king > >No need to keep them in order, use a quick list: > >uint32 ix_pc[KING+1]; // index of pieces > >Then you need two more to keep track of colors (or you can just use upper 16 for >one color, however it comes in handy if you want to loop all the pieces). >uint32 ix_co[2]; // index of colors >... // many others, such as sliders and non_sliders > >Really, there is no difference from 64 bitboards, the 32 bits work exactly the >same, execpt you don't reference squares but indices. How do you find out how many pieces of a kind attack a square? E.g., how do you calculate the number of rooks that attack a square? > >I'm not really sure it is that great an idea, probably it is better to stick to >just using bitboards with squares. The index layer is not really needed as far >as I can tell. That is what I thought; if you are using 1 bit per piece, then why not just use bitboards... > >-S.
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.