These are low-level functions that can be used to implement chess rules.
Implementation notes: Sliding attacks are computed using
Hyperbola Quintessence.
Magic Bitboards would deliver slightly faster lookups, but also require
initializing considerably larger attack tables. On the web, initialization
time is important, so the chosen method may strike a better balance.
Compute attacks and rays.
These are low-level functions that can be used to implement chess rules.
Implementation notes: Sliding attacks are computed using Hyperbola Quintessence. Magic Bitboards would deliver slightly faster lookups, but also require initializing considerably larger attack tables. On the web, initialization time is important, so the chosen method may strike a better balance.