summaryrefslogtreecommitdiff
path: root/src/engine/ttable.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-08-15 15:15:21 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-08-15 15:15:21 +0530
commit54afeb6dd89fffae92274cb6fe2e9a86fd57c6e3 (patch)
tree0d6aa206f28c9b00f785d0981bb77a97851f1ce4 /src/engine/ttable.c
parentf97ea63ac29c08530b1aaff89277262b44ef7a11 (diff)
phase B
Diffstat (limited to 'src/engine/ttable.c')
-rw-r--r--src/engine/ttable.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/engine/ttable.c b/src/engine/ttable.c
index fc1b6f0..c98bf62 100644
--- a/src/engine/ttable.c
+++ b/src/engine/ttable.c
@@ -23,9 +23,13 @@ void zobrist_init() {
u64 zobrist_hash(position_t position) {
u64 output = 0;
- for (int i = 0; i < 64; i++) {
- int piece_type = find_piece_on_square(&position, i);
- output ^= zobrist_keys.piece[piece_type][i];
+ for (int piece = 0; piece < PIECE_TYPE_COUNT; piece++) {
+ bitboard_t bb = position.bitboards[piece];
+ while (bb) {
+ int sq = __builtin_ctzll(bb);
+ bb &= bb - 1;
+ output ^= zobrist_keys.piece[piece][sq];
+ }
}
if (position.castling & WHITE_SHORT_CASTLE) {