From c437220aab7b908995a87cf958d9a67e54d478cb Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 31 Jul 2026 19:07:24 +0200 Subject: keeping track of were all the pieces are --- src/moves.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/moves.cpp') diff --git a/src/moves.cpp b/src/moves.cpp index fc2b8c7..84c5ba4 100644 --- a/src/moves.cpp +++ b/src/moves.cpp @@ -147,10 +147,13 @@ std::vector GetPseudoLegalMoves(Game *b, bool GenerateQuietMoves) { constexpr std::array rook_Moves{-1, 1, 8, -8}; constexpr std::array bishop_Moves{-9, 9, -7, 7}; - for (uint i = 0; i < sizeof(b->pieces) / sizeof(b->pieces[0]); i++) { + uint64_t piece_bitboard = b->PieceBitboard; + while (piece_bitboard != 0) { + int i = __builtin_ctzll(piece_bitboard); + piece_bitboard &= piece_bitboard - 1; Piece piece = b->pieces[i]; if (piece.type == NONEPIECE) { - continue; + assert(false && "got none piece in piece bitboard"); } if (piece.color != b->turn) { continue; -- cgit v1.2.3