BITBOARD完成しました!

 苦闘の連続でようやくbitboard完成しました。
 結局、R45、L45のrotatedBitboardは使ってません。
 R45、L45のDiaAttacksの表自体は持ってますが、
 考えてみたら、手を打つ、戻すたびに、普通のbitboardとrotatedBitboardを合わせて更新するのも
 ムダと思いますので、独自のやり方でノーマルbitboardだけで処理するようにしました。
 おそらく速度低下もあまり無いかと思います(比較してないので解りませんが)


まずは、generateCaptureをbitboard化しましたが、
AMDのCodeAnalystで見る限り3倍ぐらいは速くなってるようです。
もともと駒背番号も使ってなかったので無駄が多かったので、Bitboardだから速いとは言えませんが、
苦労が報われたので良かったです(゚Д゚ )ウマー


ただ、npsはあまり変わりませんね(^^; 自己対戦ではbitboardが勝ち越すので高速化のメリットは出てると思います。
通常の手生成とbitboard手生成の結果を比較してバグつぶしをしました。
次は、SEEや、王の1手詰、王の利きの検出などをbitboard化したいと思います。


静止探索の手生成makeAttackMovesが900ぐらいあったのが、bitboard化でgenerateMovesが57と
すごい速くなってました(^^; というか今までが遅すぎたと……
でも手を打つ処理が遅くなってるような……。割合が増えただけかな?

eval 2893
isMate 1112
gainMinMax 1039
makeAttackMoves 913
move0 379
undo0 249
ReOrder 247
full_search 204
makeMoves02 135
makeMoves0 113
vdiff 71

↓

eval 2220
isMate 1246
gainMinMax 839
move0 646
undo0 604
ReOrder 358
getKiki 264
full_search 213
makeMoves0 194
makeMoves02 178
SET 170
scan 106
generateMoves 57


将棋じゃなくてオセロですが、
プログラム技術板のbitboardのスレが凄いですね(^^;
なんだかライフゲームみたい(w
http://www9.atwiki.jp/othello/pages/48.html