私はチェス盤を表し、合法的な動きをチェックするためにビットボードで遊んでいます。私が立ち往生しているのは、スライディング ピース攻撃におけるソース スクエアと宛先スクエア間の占有率の計算です。ルックアップでやりたくないので、ルックアップなしで間にある正方形のマスクを取得できるかどうかを調べようとしています。たとえば、次のボードでは、c4 に Rook があります。
8 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
4 0 0 R 0 0 0 0 0
3 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0
a b c d e f g h
空の正方形 (または占有された正方形、より簡単なもの) を表すビットボードと疑似有効な移動 Rf4 (Rook は c4 から f4 に移動できます) が与えられた場合、正方形 d4-e4 (ソースと宛先の正方形を除く) のマスクを取得する方法?
これが明確になると、垂直方向の移動は簡単になり、回転したビットボードを使用して斜め方向の移動を計算できるようになると思います。
編集:ビットボードは ulong/unsigned int64 で表され、8 ビットの各パックは実際のボードのランク/行を表します。