BitBoard

局面の駒のあるなしや利きなどの情報をBitで管理計算することで処理を速くしようってアイデアです・・・たぶん。

  • 実装方法
盤面情報をBitBoard化するので最低81bitの値が必要。よってint型3つで表現する。
int bit[3];
 
に対してたとえば
#define BB_OR(result,x,y) (result)[0]=(x)[0]|y[0];(result)[1]=(x)[1]|(y)[1];(result)[2]=(x)[2]|(y)[2];
#difine BB_LSIFT(result,x) (result)[0]=((x)[0]<<1)|((x)[1]>>31);(result)[1]=((x)[1]<<1)|((x)[2]>>31);(result)[2]=((x)[2]<<1);
 
みたいなかんじでビット演算子を定義しておくのかな。

  • 参考
かなり簡単ながら下記に飛び駒の利きの実装方法について書かれている。
http://www4.ocn.ne.jp/~grf/bitboard01.txt
盤面情報をいちいち参照して利きを生成するよりかなり速そうである。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年06月03日 18:51
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。