どうぶつしょうぎ対戦ソフト制作感想

このゲームの面白さを知り、やる気が出てきたので、
早く対戦できるようにすることを最優先に、どんなに弱くてもいいから作ることにした。
局面を表示させるのに2時間、ルール無視で人対人ができるようになるまで1.5時間、
思考ルーチンに3時間くらいをかけて、自分に一発入れるものが出来上がった。
ペイントとペンタブで駒の絵を描いていて思ったのは、描きやすいデザインだということ。
ぞうひよこの体のカーブが、この一手という決まり方をする。
ぞう以外はみんな黄色いのだが、本物の駒には背景色があってバランスがいい。
インターフェイスを作っていると、やはり持ち駒ルールは面倒くさい。
局面を表すデータ構造は、BonanzaをUSIに対応させたときの考え方を流用した。
わずか12マスなのでビットボードとかも考えたいところだが、完成が遅くなるので我慢。
単純なアルファベータで、ライオンの取り合いを互角と判断しないようにだけ注意する。
静止探索なし、Null Window Searchやオーダリングすらなし。王手放置も生成する。
できるだけシンプルにして完成を急いだが、それでもやはり難しい。
インターフェイスを作る難しさと違って、「考えること」を本質的に要求される。
序盤と中終盤で読める深さが違うので、反復深化は付けた。
PentiumM-1.1GHzの1秒で、6〜8手くらい。
盤の大きさがダンチの本将棋で5手や10手読むBonanzaのすごさがわかるというもの。
持ち駒があると合法手がかなり増える。
ライオンを取っても持ち駒に入らないので正しく評価できないバグがあり、
そのときは5手固定で読ませてもトンチンカンな手を返していたが、
それを修正して反復深化するようにしたら、渋い受けの手を指してきて、
その手を見たときが嬉しかった。
後で本将棋の盤面を見たら、その広大さに気が遠くなった。
反則がない、飛び道具がない、盤面が狭い、振り返ってみると本当に作りやすかった。
将棋への導入としてばかりか、コンピュータ将棋入門としても適していると思った。