25 lines
580 B
C
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
|