バグを修正。

王を取る・取られる、という奇妙なバグがあった。静止探索部を少し修正 する。

レベル10,後手でも勝つ。

レベル10に勝てた!

このあたりが限界かな?と思ったが、有力な手と王手をかけられたときには読みを0.5手延長してみたら、勝てて しまった。

レベル10になると勝てない。

レベル9後手でも勝利。

レベル9先手で勝利、後手で敗北。

後手ではいきなり角交換を仕掛けられて、定跡を外されたのが敗因 みたいだ。

レベル8に勝利!

2手先読みまでの静止探索を導入。

デバッグモードで実行していた。

リリースモードで実行すると、平均8手読み するようになり、レベル7後手でも勝った。

レベル7、後手では負ける。

レベル7に先手で勝つ。

細々としたバグを修正、151手という熱戦だったが勝利。 ただ、先読みが4~5手しかしなくなったのだが・・・その分正確に読んでいるという ことなのかな?

ようやくバグが取れた。

いじくり回したら、

勝敗の決着が付かなくなってしまった。 どうすればよいのやら。

『NullMove枝狩り』と『FutillityCut』の威力は凄い。

なんと最大10手先まで読めるように なった。

『NullMove枝狩り』と『FutillityCut』を装備する。

Pvsアルゴリズムを導入。

レベル4先手で勝つ 。

定跡(囲い)を組み込む。

美濃囲い・高美濃囲い・銀冠・金無双・振り飛車穴熊・矢倉・左美濃・居飛車穴熊を組み込む 。

レベル3先手で勝利。

静止探索を使った前向き枝刈りを導入。

レベル2後手で勝利 。

レベル1後手でも勝利!

スパーリング相手を『100万人のための3D将棋~金沢将棋』に変える。

レベル1に勝利 。

静止探索を導入する。

49手で勝つ 。

今度は勝った。

定跡を入力・指すことができるようになったが、

負けてしまった。水平線効果が ひどい。

細かいバグを修正。

ついでに局面クラスから定跡クラスを派生させる。しかし、まだ定跡は指せない。

うまくいったのに一安心。

ゾブリストハッシュのやり方を変更する。

やねうらおさんのブログに掲載されていたように、ハッシュ値を求めるのにXORを使っていたのをただのプラス・マイナスに変えてみた。

細かいバグを修正。

捕獲探索を導入してみた。

とりあえず、勝つ。

これでいいのかなあ?

あまりにもプログラムが複雑になったわりには122手もかかってしまう。

いじくり回したら、また弱くなってしまった。

相手思考時間の利用

相手が思考している間にも、予想できる手を指されたとして、ハッシュ表を埋めていく、というアルゴリズムを導入 してみた。

時間制限5秒に戻す。

59手で勝利!

『駒の効き』を再度、評価値に入れてみた。

パソコンが一台しかないので、強くなっているかどうかは比較できない・・・。

ようやくバグを見つける。

評価値の最大値をG_INFINITEとしなければいけないのをINFINITEとしていたのが原因だった。

単純ネガアルファベータ探索からやり直す。

3 手先読みでは勝負つかず。

『駒の効き』を評価値から外してみたが、

負けてしまう 。

うーん・・・。

色々維持繰り回したら弱くなってしまった。

探索深さを5に固定してみたら、負けてしまった。

ちょっとおかしくても時間固定(5秒)で良いのか?

『駒の効き』を評価値に入れてみた。

勝つには勝つのだが、138手も かかってしまう。

バグを修正、勝つ。

多重反復深化をするかしないかを決める変数を付け加えるのを忘れていた。しかし、138手も掛かるとは ・・・。

読み時間を5秒に設定すると負けてしまう。

時間カットの場所が悪いの だろうか?

Pvs探索を再導入。

2回目の勝利 。

初勝利!

読み打ち切りのバグだった。

水平線効果か?

なんか無駄な王手が多い。

静止探索

処理が重くなるのを承知で『静止探索』(+3手読み)を取り入れてみたが、またも敗北 。

またハムに負けた。

こっちは6.7手先を読んでいるはずなのに?

『ハム将棋』と対戦してみたところ、

負けてしまった ・・・。

開発言語をJavaに変えようか?

あっという間にここまで作れるようになった。自分には機械学習等は無理なので、モンテカルロ法を使ってみようかと思う 。

JavaでHello.Worldに成功。

Visual Studio Communityに比べて、大変に複雑 ・・・。