まだ動いてもいなくてヤバい感じです。。
で、評価関数の最適化はあきらめ、
とりあえず動かすコトを優先することに。
そこで、マルチコア用の探索を書き始めました。
すごく今さらなのですけど。
マルチコアの場合、ばらばらのCPUが好き勝手に
メモリアクセスをしますので、排他制御が必要なわけです。
で、ロック命令を使えば良いかとおもっていたのですけど。
今のCPUって、命令の実行順序も入れ替えちゃうのですね。
つまり、メモリフェンスと呼ばれる特殊な命令などで
実行順序の入れ替えも禁止してあげないと、
すごく再現性の低いバグが出ちゃうかもなわけです。
うう。
これは、自信ないなあ。。
ゲームのマルチスレッド処理は非常に難しいので、チェスも将棋もみんなCraftyを真似している、なんていう話も聞きます。YSSのページのCraftyの解説を読むだけで大変そうな感じです。
ご指摘ありがとうございます。
今回は昨年のバージョンで
参加させていただくつもりです。
なんだか、大会も昨年のままに
なりそうなカンジですけど。。