I am writing my second engine based on bitboards in C language.
I am not sure about legal move generation.
My generation schema is :
Code: Select all
legals := EmptyStack()
stack := GeneratePseudoLegalMoves(pos)
FOR ALL move IN Stack
PlayMove(pos, move)
IF NOT IsAttackedSquare(pos, pos.king_square[opponent(pos.side_to_move)])
add(legals, move)
END IF
UndoMove(pos, move)
END FOR
Can you tell me if exists a legal move generation schema more efficient?
Regards,
Samuele Giraudo