struct BitBoard {
uint32_t bb[3];
};
the bits in bb[0] from LSB to MSB represent a1, a2, ..., a10, b1, b2, ..., b10, c1, c2, ...,c10, the highest two bits don't use.
bb[1]--> d1, ..., f10
bb[2]--> g1, ..., i10
i want to use Kindergarten bitbaords for move generation
the key point is that i want not only to precalculate the rook attack table like:
BitBoard RookAttacks[squares][rank or file status],
but precalculate the moves table like this:
Moves RookRankMoves[squares][occ_status][max_moves];
the 1st element of RookRankMoves[][][] is RookRankMoves[][][0], which tell how many postion rook can go along this rank, the rest is the moves itself.
this may avoid a lot of bitscan and bitclear.
sorry for poor english, may someone undertand

any suggestion?