2010/02/18
■ 本日よりMiyakoShogiSystemに名称変更。
高速化のため基本設計を変更する。
手の構造体をやめ次のようなデータにする。
ofs width 役割 0 8 from 8 8 to 16 4 piece 20 4 capture 24 1 promote 25 1 good(現在不使用)
これでintひとつで手が表現できる。手のスコアは別に持ち、オーダリングはqsortを使わず、独自のルーチンを用いる。
ビットボード採用はずいぶん考えたが、
- チェスと違い64bitで盤が収まらない。
- チェスより飛び駒が少ない。
ため、ビットボード採用は見送った。ただ、手や利きの同時生成はすごいと思う。
次に利きをつけている駒の位置が有ると、特に飛び駒の位置を探す必要が無くなり、
- 駒を取る手の生成が早くなる
- 交換値計算が速くなる
- 静止探索が速くなる
- 王手、受けの生成が速くなる
はずである。