From d1ebfd0efb368fbb80aaf5bf4f6f878f2fa3c136 Mon Sep 17 00:00:00 2001 From: ianfab Date: Sun, 12 Aug 2018 11:49:53 +0200 Subject: [PATCH] Fix #5: Set attack bitboards for all piece types This fixes issues with uninitialized attack tables. Bench results are deterministic now also for variants that are missing some of the standard chess piece types. No functional change for standard chess. --- src/evaluate.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index e009ba5..4333e24 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -944,10 +944,10 @@ namespace { initialize(); initialize(); - // Pieces should be evaluated first (populate attack tables) - for (PieceType pt : pos.piece_types()) - if (pt != PAWN && pt != KING) - score += pieces(pt) - pieces(pt); + // Pieces should be evaluated first (populate attack tables). + // For unused piece types, we still need to set attack bitboard to zero. + for (PieceType pt = KNIGHT; pt < KING; ++pt) + score += pieces(pt) - pieces(pt); score += mobility[WHITE] - mobility[BLACK]; -- 1.7.0.4