解説
ビットボードは、チェス盤上のマスの集合を64ビットの数で表す。ビットとは0または1だけを保持できる情報単位である。チェス盤には64マスあるため、各マスに1ビットを割り当てられる。
値1は必ずしも駒があることを意味しない。そのマスが、そのビットボードの表す集合に属するという意味である。白ポーンすべて、ナイトが攻撃する全マス、占有マスすべて、またはほかの有用な集合を示せる。
は通常、複数のビットボードを同時に保持する。0と1を直接組み合わせるビット演算により、集合の積や和、マスの除外、パターンのシフトを、ごく少ないプロセッサー命令で実行できる。これは高速な合法手生成と攻撃生成に役立つ。
一つのビットボードだけでは保持しない情報
- ほかのビットボードで区別しない限り、すべての駒種。
- どちらの手番か。
- の権利、つまりキングとルークによる特別な手がまだ許されるかどうかと、アンパッサンが可能かどうか。アンパッサンはポーンによる特別な捕獲である。
完全な局面は、こうした事実を複数の集合と組み合わせる。ビットボードはのような探索手法でもなく、情報の表現方式である。
よくある混同
ビットボードと完全な盤面状態
一つのビットボードは通常、一つのマス集合を表す。完全な局面は複数の集合とほかの状態情報を組み合わせる。
ビットボードとビットベース
ビットボードは一局面内のマスを表し、ビットベースは多数のエンドゲーム局面の結果を保存する。
用語を見る出典
- 1.Bitboards, Chess Programming Wiki
- 2.bitboard.h, Stockfish
