diff options
| author | Adam <adammegarules1@gmail.com> | 2026-08-02 15:15:45 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-08-02 15:15:45 +0200 |
| commit | 08c0a181d6e5beb6848fe278dfb421fbcb4e3aba (patch) | |
| tree | 00c32b9ae97b189cf8d64e6f01ba93c4ae1c8860 /src/board | |
| parent | 26f5b9cc34633c5dd8c7f61c6751c43c63f30bc4 (diff) | |
adding colored piece bitboards
Diffstat (limited to 'src/board')
| -rw-r--r-- | src/board/board.cpp | 9 | ||||
| -rw-r--r-- | src/board/board.hpp | 2 |
2 files changed, 10 insertions, 1 deletions
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 |
