Magic Bitboard

秋にある某大会へ向け、mini shogiのプログラムを作り始めていて、データ構造にbitboardを用いる予定。将棋やチェスでbitboardを用いると、rookやbishopの様な、ある方向への連続した駒の利きを持つ駒の移動可能先を求める手段が問題となるらしく、コンピュータチェス界では様々な解決方法が提案されている模様*1

恐らくcom将棋で実際に使われてる方法はほとんどrotated bitboardなのでしょうが、どうやらmagic bitboardという方法の方が速度的に有利らしいので頑張って実装してみようかと思います。

実装に使うmagic numberという謎の数字を、乱数でひたすらtry and errorしながら見つけ出す作業をしないといけなという凄まじい世界らしいです。

magic numberの探し方と、magic bitboardの実装のサンプルコード

追伸:
前回リンクだけ貼りまくったCDのうち2枚ほどかいました。タワレコオンラインで調べたらどちらも1400円ぐらいだったので。Pantha du princeのBlack Noiseがすごく良いです。

Black Noise

Black Noise

Tarot Sport (Dig)

Tarot Sport (Dig)