diff options
| author | Adam <adammegarules1@gmail.com> | 2026-08-01 08:14:20 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-08-01 08:14:20 +0200 |
| commit | 839b4740af77743c7141e113eb7f110b4f6a9983 (patch) | |
| tree | 4d9e6ac57e6ecdace3c1e86dc26afd87bc4a863d /src/evaluate.cpp | |
| parent | 1b006985ba2381a29dd9aa34aec1dafbae224897 (diff) | |
optimalization and naming changes
Diffstat (limited to 'src/evaluate.cpp')
| -rw-r--r-- | src/evaluate.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/evaluate.cpp b/src/evaluate.cpp index a777e0c..3e4f72f 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -1,7 +1,9 @@ #include "evaluate.hpp" #include "board/board.hpp" #include "moves.hpp" +#include <cassert> #include <cstdlib> +#include <iostream> constexpr int PAWN_VALUE = 100; constexpr int KNIGHT_VALUE = 320; @@ -105,10 +107,18 @@ static int ForceKingToEdgeBonus(const Position enemyKing, int CountBoardMaterial(Game *g) { int score = 0; - for (int i = 0; i < 64; i++) { + uint64_t piece_bitboard = g->PieceBitboard; + while (piece_bitboard != 0) { + int i = __builtin_ctzll(piece_bitboard); + piece_bitboard &= piece_bitboard - 1; + const Piece piece = g->pieces[i]; - if (piece.type == NONEPIECE) - continue; + + if (piece.type == NONEPIECE) { + assert(false && "in piece bitboard found none piece"); + std::cout << "Internal error\n"; + exit(1); + } int value = 0; |
