タグ

ブックマーク / ainame.hatenadiary.org (1)

  • リバーシプログラム - bitboard による合法手生成 - プログラミング練習帳&備忘録

    前回C#3.0な機能を何とか使ってみたいという思いでプログラム書いてましたが、結局実行速度の問題(ラムダ式が、というよりビットボードからインデックスを求めて合法手配列にアクセスするという手法が無駄だったwビットボード使うならビット演算だけで合法手求めろって話ですね。)なため貼りつけた部分のコードは全部消しました。 というわけで現在リバーシプログラムの実装状況を挙げると、 コンソールへの盤面印字 着手可能点の生成 盤面更新処理 です。ここまで来ると次はいよいよ探索部分ですね。 全合法手はこんな感じで生成出来ます。ビットボードは64bitのC#だとulong型で、各ビットに石があれば1のビットが立っていて、白黒それぞれ別に持っています。orをとるとどっちかの石の置かれてるビットボードになり、そのnotをとると空白のマスを表します。以下のソースの詳細はコメント書いたので省略。以下を全方向に対して

    リバーシプログラム - bitboard による合法手生成 - プログラミング練習帳&備忘録
  • 1