mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 01:29:36 +00:00
Introduce variadic make_bitboard()
Adds a helper function to make a bitboard from a list of squares. No functional change
This commit is contained in:
parent
450f04969c
commit
3192b09fe0
2 changed files with 18 additions and 6 deletions
|
@ -150,7 +150,17 @@ inline Bitboard file_bb(Square s) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// shift() moves a bitboard one step along direction D. Mainly for pawns
|
/// make_bitboard() returns a bitboard from a list of squares
|
||||||
|
|
||||||
|
constexpr Bitboard make_bitboard() { return 0; }
|
||||||
|
|
||||||
|
template<typename ...Squares>
|
||||||
|
constexpr Bitboard make_bitboard(Square s, Squares... squares) {
|
||||||
|
return (1ULL << s) | make_bitboard(squares...);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// shift() moves a bitboard one step along direction D (mainly for pawns)
|
||||||
|
|
||||||
template<Direction D>
|
template<Direction D>
|
||||||
constexpr Bitboard shift(Bitboard b) {
|
constexpr Bitboard shift(Bitboard b) {
|
||||||
|
|
|
@ -236,11 +236,13 @@ Entry* probe(const Position& pos) {
|
||||||
template<Color Us>
|
template<Color Us>
|
||||||
Value Entry::shelter_storm(const Position& pos, Square ksq) {
|
Value Entry::shelter_storm(const Position& pos, Square ksq) {
|
||||||
|
|
||||||
const Color Them = (Us == WHITE ? BLACK : WHITE);
|
constexpr Color Them = (Us == WHITE ? BLACK : WHITE);
|
||||||
const Bitboard ShelterMask = (Us == WHITE ? 1ULL << SQ_A2 | 1ULL << SQ_B3 | 1ULL << SQ_C2 | 1ULL << SQ_F2 | 1ULL << SQ_G3 | 1ULL << SQ_H2
|
constexpr Bitboard ShelterMask =
|
||||||
: 1ULL << SQ_A7 | 1ULL << SQ_B6 | 1ULL << SQ_C7 | 1ULL << SQ_F7 | 1ULL << SQ_G6 | 1ULL << SQ_H7);
|
Us == WHITE ? make_bitboard(SQ_A2, SQ_B3, SQ_C2, SQ_F2, SQ_G3, SQ_H2)
|
||||||
const Bitboard StormMask = (Us == WHITE ? 1ULL << SQ_A3 | 1ULL << SQ_C3 | 1ULL << SQ_F3 | 1ULL << SQ_H3
|
: make_bitboard(SQ_A7, SQ_B6, SQ_C7, SQ_F7, SQ_G6, SQ_H7);
|
||||||
: 1ULL << SQ_A6 | 1ULL << SQ_C6 | 1ULL << SQ_F6 | 1ULL << SQ_H6);
|
constexpr Bitboard StormMask =
|
||||||
|
Us == WHITE ? make_bitboard(SQ_A3, SQ_C3, SQ_F3, SQ_H3)
|
||||||
|
: make_bitboard(SQ_A6, SQ_C6, SQ_F6, SQ_H6);
|
||||||
|
|
||||||
enum { BlockedByKing, Unopposed, BlockedByPawn, Unblocked };
|
enum { BlockedByKing, Unopposed, BlockedByPawn, Unblocked };
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue