X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.h;h=ecff5c3abd84a7ff5b6365ebf5329b4fcb09cef7;hp=e95bf0d275996f0965efb36617c840408821d6f3;hb=dd4e5db2be2eb5631d739af634cb33bea2f3fddd;hpb=1d18647e738951a7e94530fef231f4b4e13b1786 diff --git a/src/bitboard.h b/src/bitboard.h index e95bf0d2..ecff5c3a 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -26,7 +26,7 @@ namespace Bitboards { void init(); -void print(Bitboard b); +const std::string pretty(Bitboard b); } @@ -254,6 +254,16 @@ inline Bitboard attacks_bb(Square s, Bitboard occ) { return (Pt == ROOK ? RAttacks : BAttacks)[s][magic_index(s, occ)]; } +inline Bitboard attacks_bb(Piece p, Square s, Bitboard occ) { + + switch (type_of(p)) + { + case BISHOP: return attacks_bb(s, occ); + case ROOK : return attacks_bb(s, occ); + case QUEEN : return attacks_bb(s, occ) | attacks_bb(s, occ); + default : return StepAttacksBB[p][s]; + } +} /// lsb()/msb() finds the least/most significant bit in a nonzero bitboard. /// pop_lsb() finds and clears the least significant bit in a nonzero bitboard.