評価が

COM側が自動で指すようにはなったけど、形勢を評価するのが予想以上に大変だ。ものすごく入り組んだ作りにしてしまったので二手読むだけでもえらい時間がかかる。角道を開けるのが良いと判断するところなどはかわいくて仕方が無いんだけど、その後むやみに歩を進めていくのが謎。
今の形だと修正も大変だしさらに先の手を読ませるためにはものすごい時間がかかりそうだ。なにより棋譜を読めないし、定跡もこのままじゃ入れれない。もう少し包括的に変数でまとめてやらないとダメっぽい。今考えているのは、盤面を以下のように表して、

020304050805040302
000600000000000700
010101010101010101
000000000000000000
000000000000000000
000000000000000000
212121212121212121
002700000000002600
222324252825242322

162文字のstringとして扱うこと。この場合02は後手の香車を表している。成ったら12にしたりと、10の位の数を上手いこと使いたい。例えば取られそうな駒は+20してみたり。1の位が0のところは基本は空白だけど、10なら自分が移動できるところ、20なら相手が、30ならお互いが移動できるところ、てな具合にやっても面白そうだ。これで簡単になるかどうかはわからないけど、今よりかはましなはず。
この仕組みにすれば、定跡を保存させて、既出の盤面では思考時間を短縮させることが出来るはず。Excelの表を使って例えば5手目なら

5手目 差手
盤面① 手①
盤面① 手②
盤面① 手③
盤面② 手①
盤面② 手②
盤面③ 手①

のように記録させておけば次の手を探せるはず。あとから付け加えてやることも出来るし。初めての盤面では自分で考えて、そのうち上位3位までを記憶させ、次回指すときにそのうちの3つからランダムに選ばせることも可能だろう。
 
あ〜、楽しい。時間が無限にあればいいのにね。