ビットボード

各マスに一つずつ割り当てた64個の0または1で、選んだ集合に属するマスを示す表現。

解説

ビットボード は、チェス盤上のマスの集合を64ビットの数で表す。ビットとは0または1だけを保持できる情報単位である。チェス盤には64マスあるため、各マスに1ビットを割り当てられる。

白ポーンのマスク

8
7
6
5
4
3
2
a1
b
c
d
e
f
g
h
1になっているビットは、、、、 の白ポーンに対応する。
各マスに1ビット

固定されたローカル規約では、指標を から までランクごとに読み、次に から へ進み、そのまま から まで続ける。1は集合に属することを示す。表示する集合、白ポーン: 00000000/00000000/00000000/00000000/00000000/00101000/10000001/00000000。手番とその他のFENデータは、このマスクには含まれない。

値1は必ずしも駒があることを意味しない。そのマスが、そのビットボードの表す集合に属するという意味である。白ポーンすべて、ナイトが攻撃する全マス、占有マスすべて、またはほかの有用な集合を示せる。

ナイトの攻撃マスク

8
7
6
5
4
3
2
a1
b
c
d
e
f
g
h
のナイトが幾何学的に到達できる8つのマスは、空いていても集合を構成する。
駒のないマスにも1

同じランク順の規約を用いる。表示する集合、 の白ナイトが攻撃するマス: 00000000/00000000/00101000/01000100/00000000/01000100/00101000/00000000。1は、そのマスに駒がなくても幾何学的な性質を表す。

は通常、複数のビットボードを同時に保持する。0と1を直接組み合わせるビット演算により、集合の積や和、マスの除外、パターンのシフトを、ごく少ないプロセッサー命令で実行できる。これは高速な合法手生成と攻撃生成に役立つ。

攻撃と占有の共通部分

8
7
6
5
4
3
2
a1
b
c
d
e
f
g
h
と はAとBの両方に属する。 のルークがそれらを攻撃し、黒駒がそのマスを占めている。
A ∩ Bの結果

すでに示したランク順の規約では、Aは の白ルークが攻撃するマスの集合、Bは黒駒が占めるマスの集合である。表示する集合はA ∩ B: 00000000/00000000/00000000/00010000/00000000/00000000/00000000/00000001。1になっているビットは と に対応する。 の黒キングはBには属するが、Aには属さない。

一つのビットボードだけでは保持しない情報

  • ほかのビットボードで区別しない限り、すべての駒種。
  • どちらの手番か。
  • の権利、つまりキングとルークによる特別な手がまだ許されるかどうかと、アンパッサンが可能かどうか。アンパッサンはポーンによる特別な捕獲である。

完全な局面は、こうした事実を複数の集合と組み合わせる。ビットボードは のような探索手法でもなく、情報の表現方式である。

よくある混同

ビットボードと完全な盤面状態

一つのビットボードは通常、一つのマス集合を表す。完全な局面は複数の集合とほかの状態情報を組み合わせる。

ビットボードとビットベース

ビットボードは一局面内のマスを表し、ビットベースは多数のエンドゲーム局面の結果を保存する。

用語を見る

出典

  1. 1.Bitboards, Chess Programming Wiki
  2. 2.bitboard.h, Stockfish

関連用語

© 2026 MindZug