MFCからWTLに変更したら大変かな?

とりあえず、MFC は有料のVisual Studioにしかついてこなく、うちで使えるのは VS2005Pro しかない。x64 は必須だし、バージョンアップしたいけど、自前で買うのはちょっと…、ということで、フリー(無料&ソース公開義務無し)にこだわると
・Visual C++ 2010 Express Edition+Windows SDK for Windows7 and .NET4+WTLIntel TBB
・Visual C++ 2008 Express Edition+Windows SDK for Windows7 and .NET3.5+WTLIntel TBB
のどちらかか??
さらに OpenGL とか DirectX を入れたらカオスだなぁw

まぁ、いずれやりたいことではあるけどここまで環境を置き換えて作り直すのもリソース不足で大変すぎるので、
Visual Studio 2005 Pro+Intel TBB
くらいかな。OpenGL は間に合えばやるかもw
ただ、VS2005 だと POPCNT が intrin で定義されていないんだよなぁ。あまり使わないけど。
それより MFC+TBBってできるんかなぁ??

今度のAMDは3倍速い?!

上田新聞Blogの「Phenom II X6 1090Tの約3倍? 〜 Bulldozerのベンチマーク」によると、Bulldozer は PhenomII X6 1090Tの約3倍速いという紹介が!!
Core i7もぶっちぎるこの数値にはちょっと眉にツバをつけてしまいますが、期待大です!!!
今年の選手権には間に合いませんが…。

マルチタスクは戦闘魔導師には必須のスキル

APIレベルでマルチスレッド対応するのはかなり大変そうなので、少しでもお手軽に出来ないものかと思って行き着いたのが、インテル TBB。
とはいえ、TBBの商用版は手が出ないからオープンソース版を選択すると GPL だからソース公開の義務があるしなぁ、と思っていましたが、XLsoftのFAQ

TBB ライブラリーのオープンソース版を用いて製品を開発した場合、ソースコード開示義務が発生しますか。
TBB ライブラリーのオープンソースは GNU Runtime Exception (GNU GPLv2) を採用しています。そのため、TBB ライブラリーのソースコードに何も変更を加えていない場合はソースコード開示義務は発生しないとインテル社では考えております。最終的には御社法務ご担当者のご判断に基づきます。 GNU GPLv2 についてはこちらをご覧ください。

とあり、特に問題はなさそう。
シングルスレッドである程度の強さを発揮した後にマルチスレッド化してもあまり意味がない気もしますが、GA将!!!!が詰め処理を別スレッドで走らせていたと言うこともあるので、思考の並列化よりもまずは別の作業を並列に実行させる方向で考えてみようかと。
ネタはないけどたとえば頓死チェックとか?

なんとかなるよ、絶対大丈夫だよ!

オープン戦に参加して、4戦して1勝3敗でした…。
激指7の10級相手にいい勝負する僕から見ても変な手が結構あったので、次回までにもう少しマシにしないと!

で、オープン戦の後、K-Shogiと200回の連続対局をしてみました(かなり弱い設定)。
なのはから見てトータルでは62勝137敗1分で勝率31%でしたが、先手番のときは45勝61敗1分で勝率42%、後手番のときは17勝76敗で勝率18%と先後でかなりの差となりました。
K-Shogiが先手のときに強い…というより、なのはが後手のときに何かバグがあるのかな??
評価値が「勝ち」になって数手進むと普通の評価値になることがあるのはこのせいか?!

それはそうと、shogi-server で連続対局をするとき先手と後手を交互にするにはどうしたらいいんだろう?

あしたはオープン戦

出る気はあります。
が、なんかだいぶ久しぶりにソースを見たら「何これ?」状態。
とりあえず、連続王手の千日手くらいは回避しようとpishogiとの棋譜で再現させてみると、たまたま思考部分の問題ではないことがわかった…。

  1. 1手で摘ませられる局面(局面A)で、ハッシュに手が登録されてなく詰ルーチンの固定深さの詰ルーチンで3手詰めの手を返す。
  2. 相手が王手を回避する
  3. ハッシュに詰ます手が登録されていて、その手を指す。
  4. 相手が王手を回避する(ここで局面Aに戻る)
  5. 最初に戻る

とりあえず、ルートで高速1手詰めを呼ぶようにしよう…。