2012/09/09
■ 駒を取らない移動手王手の生成
静止探索内では駒を取る手、駒を取らない王手を生成している。
bitboardによる隣接王手生成
たとえば52に王がいるとして銀の利きデータを貼り付ける 9 8 7 6 5 4 3 2 1 0 0 0 1 0 1 0 0 0 一 0 0 0 0 K 0 0 0 0 二 0 0 0 1 1 1 0 0 0 三 0 0 0 0 0 0 0 0 0 四 0 0 0 0 0 0 0 0 0 五 0 0 0 0 0 0 0 0 0 六 0 0 0 0 0 0 0 0 0 七 0 0 0 0 0 0 0 0 0 八 0 0 0 0 0 0 0 0 0 九
ビットの立った位置に銀の利きがあれば王手となる
74に地点に銀がいるとして、銀の利きは
9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 一 0 0 0 0 K 0 0 0 0 二 0 1 1 1 0 0 0 0 0 三 0 0 S 0 0 0 0 0 0 四 0 1 0 1 0 0 0 0 0 五 0 0 0 0 0 0 0 0 0 六 0 0 0 0 0 0 0 0 0 七 0 0 0 0 0 0 0 0 0 八 0 0 0 0 0 0 0 0 0 九
上記のbitboardに銀の利きをandして
9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 一 0 0 0 0 K 0 0 0 0 二 0 0 0 1 0 0 0 0 0 三 0 0 S 0 0 0 0 0 0 四 0 0 0 0 0 0 0 0 0 五 0 0 0 0 0 0 0 0 0 六 0 0 0 0 0 0 0 0 0 七 0 0 0 0 0 0 0 0 0 八 0 0 0 0 0 0 0 0 0 九
63の地点が王手の手となる