My first thought was to go completely bitboard based and store the bitboards for each piece type in an array such as:
Code: Select all
board->piece[color][type]Code: Select all
board->square[64]Wouldn't it be better (i.e. faster) to have a simple stack for the pieces (much like Fruit). Even the sliding pieces (e.g. the rook) don't need a specific bitboard as long as I know where they are and the location of friendly (or more specifically ~friendly) pieces. So I'll just keep an "all_pieces" and a "pieces[color]" bitboard up to date (as well as the pawn bitboard).
I'd appreciate any comments - especially if I'm missing anything,
Best,
Steve

