From 08c0a181d6e5beb6848fe278dfb421fbcb4e3aba Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 2 Aug 2026 15:15:45 +0200 Subject: adding colored piece bitboards --- src/board/board.cpp | 9 ++++++++- src/board/board.hpp | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src/board') diff --git a/src/board/board.cpp b/src/board/board.cpp index 572a3f0..2257010 100644 --- a/src/board/board.cpp +++ b/src/board/board.cpp @@ -259,6 +259,8 @@ void UnMakeMove(UndoMove undo, Game *g) { }; void UpdateHelpers(Game *g) { g->PieceBitboard = 0; + g->WhitePieceBitboard = 0; + g->BlackPieceBitboard = 0; for (uint8_t i = 0; i < 64; i++) { Piece piece = g->pieces[i]; if (piece.type == NONEPIECE) { @@ -271,8 +273,13 @@ void UpdateHelpers(Game *g) { g->BlackKingPosition = i; } } - g->PieceBitboard |= (1ULL << i); + if (piece.color) { + g->WhitePieceBitboard |= (1ULL << i); + } else { + g->BlackPieceBitboard |= (1ULL << i); + } } + g->PieceBitboard = g->WhitePieceBitboard | g->BlackPieceBitboard; } void SetPiece(int i, PieceType type, bool color, Game *g) { g->pieces[i] = {.color = color, .type = type}; diff --git a/src/board/board.hpp b/src/board/board.hpp index 869e223..e754991 100644 --- a/src/board/board.hpp +++ b/src/board/board.hpp @@ -53,6 +53,8 @@ struct TranspositionsEntry { struct Game { Piece pieces[64]; uint64_t PieceBitboard = 0; // used for quicly iterating over all squares + uint64_t WhitePieceBitboard = 0; + uint64_t BlackPieceBitboard = 0; uint8_t WhiteKingPosition = 0; uint8_t BlackKingPosition = 0; bool turn = true; // 1 white; 0 black -- cgit v1.2.3