サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
d.hatena.ne.jp/shogicraft
コンピュータ将棋ここ5日間ほどでdf-pnアルゴリズムを利用した詰将棋プログラムをほぼ実装できました。その結果、羽生の将棋実戦「詰め&必死」200―羽生マジックに学ぶ終盤の手筋200題に掲載されている詰将棋100題のうち98題をほとんどすぐに解けるようになりました*1。逆にいうと2題は時間がかかりすぎてうまく解けないのですが、割合でいうと2%ですし、あまり気にしないことにします…。(なお、解答の結果は末尾に記載しています。)以下、df-pnアルゴリズムを詰将棋に応用する際に気がついたポイントをまとめてみます。 ポイント1: ゲーム計算メカニズム (コンピュータ数学シリーズ 7)はすばらしいこの本はすばらしいです。df-pnアルゴリズムにはいわゆるサイクル問題があり、この問題に対して特に対策をしないと、詰み・不詰を間違えることさえあります。そこでサイクル問題の対策をする必要があるのですが、論
C++C++には、Javaでいうところのstaticブロックや、C#でいうところの静的コンストラクタがないので、クラス定数を初期化する方法が限られています。 ケース1:Javaでstaticブロックを使って初期化した場合たとえばJavaでは、配列のクラス定数を初期化するときには、static文を使って以下のように書くことができます。 class Sample { public static final int[] SQUARES = new int[10]; static { for (int i = 0; i 10; i++) SQUARES[i] = i * i; } } 簡単・簡潔ですね。配列の要素数が1000に増えたとしても同じ書き方です。とても便利です。 ケース2:C++で素朴に配列を初期化した場合ところが、C++にはstaticブロックに当たるものはありません(…ですよね?)。
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く