diff options
| author | Adam <adammegarules1@gmail.com> | 2026-08-18 21:10:04 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-08-18 21:10:04 +0200 |
| commit | d510e0a23ad67a12d993792751c4c23b07f2e8c7 (patch) | |
| tree | dd67b1073e621ea1400cc83ca52370711b95b049 | |
| parent | a4024e15a807e26ddad04d6804742fab0d6c8c96 (diff) | |
refactor(all):
| -rw-r--r-- | magic_finder.c | 8 | ||||
| -rw-r--r-- | src/board/board.cpp | 10 | ||||
| -rw-r--r-- | src/evaluate.cpp | 2 |
3 files changed, 12 insertions, 8 deletions
diff --git a/magic_finder.c b/magic_finder.c index 50c4279..ee21587 100644 --- a/magic_finder.c +++ b/magic_finder.c @@ -4,6 +4,8 @@ #include <string.h> #include <time.h> +// TODO: make magic bitboards use diffrent shift for each magic number (maybe) + static int popcount(uint64_t b) { return __builtin_popcountll(b); } static uint64_t computeRookMask(int sq) { @@ -165,11 +167,13 @@ int main(int argc, char *argv[]) { uint64_t rookMags[64], bishopMags[64]; uint64_t rookMasks[64], bishopMasks[64]; - fprintf(stderr, "Finding per-square rook magics (shift %d, table size %llu)...\n", + fprintf(stderr, + "Finding per-square rook magics (shift %d, table size %llu)...\n", shift, (unsigned long long)(1ULL << (64 - shift))); for (int sq = 0; sq < 64; sq++) { rookMasks[sq] = computeRookMask(sq); - if (!findMagic(rookMasks[sq], computeRookAttacks, sq, shift, &rookMags[sq])) { + if (!findMagic(rookMasks[sq], computeRookAttacks, sq, shift, + &rookMags[sq])) { fprintf(stderr, "FAILED to find rook magic for square %d\n", sq); return 1; } diff --git a/src/board/board.cpp b/src/board/board.cpp index 9ac60a8..822e1b5 100644 --- a/src/board/board.cpp +++ b/src/board/board.cpp @@ -1,4 +1,3 @@ -#include <algorithm> #include <cassert> #include <cstddef> #include <cstdint> @@ -177,14 +176,15 @@ Undo MakeMove(uint16_t move, Game *g) { g->PieceBitboards[captuaredColor][PAWN] ^= square; - if (captuaredColor) + if (captuaredColor) { g->WhitePieceBitboard ^= square; - else + } else { g->BlackPieceBitboard ^= square; - + } g->PieceBitboard = g->WhitePieceBitboard | g->BlackPieceBitboard; - g->pieces[PositionToIndex(capturedPawn)] = {false, NONEPIECE}; + g->pieces[PositionToIndex(capturedPawn)] = {.color = false, + .type = NONEPIECE}; } g->canEnpassant = false; diff --git a/src/evaluate.cpp b/src/evaluate.cpp index c14fb9a..bb65c7f 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -201,7 +201,7 @@ bool IsEndgame(const Game *g) { } } - return queens == 0 || (queens == 2 && minor <= 1); + return (queens == 0 && minor <= 2) || (queens == 2 && minor <= 1); } int EvaluateBoardForWhite(Game *g) { |
