bitchess/src/bitboard.h
2025-04-28 12:09:05 +05:30

25 lines
580 B
C

#ifndef BITBOARD_H
#define BITBOARD_H
#include "types.h"
// Precomputed attack tables
extern U64 knight_attacks[64];
extern U64 king_attacks[64];
extern U64 pawn_attacks[2][64]; // [color][square]
// Lookup tables for bishop and rook moves
extern U64 bishop_masks[64];
extern U64 rook_masks[64];
// Magic bitboard tables
extern U64 bishop_attacks[64][512];
extern U64 rook_attacks[64][4096];
// Initialize attack tables
void init_attack_tables();
// Get sliding piece attacks (bishop/rook)
U64 get_sliding_attacks(int sq, U64 blockers, int is_bishop);
#endif // BITBOARD_H