b2u公開(Bonzna to USI)

b2u
Bonanzaを、USI対応の将棋GUIで使うためのもの。
既にそういうソフトはあるけど、Bonanzaにはmove restraintというコマンドがあって、
その機能を使ってみたかった。

* move restraint
次の一手を思考.但し,restraint.dat 内に羅列されている合法手を指さな
いようにする.ファイル内の文字列は以下のようにして下さい.

Bonanzaと対局しているとき、待ったしてもう一度こちらが同じ手を指すと、
Bonanzaがさっきとは別の手をひねり出してくれる、という形で実装。
何かもっと面白い使い方があるような気もする。

しかしUSIに対応させるのは難しかった(なめてかかったので)。
プロトコルが異なる2つのソフトをつなぐパイプになればいいと思っていたが、
内部で局面(盤、駒台、手番、手数)を持つ必要がフツーにあった。
また、BonanzaとUSIの2つを相手にするので、何かのときに原因の切り分けが手間だ。

Cで書くのは、C#と比べてしまうとかなり面倒で書きにくいのだが、
書けないのは自分の頭が悪いからだと思えるぶん、まだ頑張りようがある。
いっそ人間には解読不能プロトコルにしちゃえば、GUIもエンジンも簡単に作れるのにな。
それだとデバッグができないデメリットが大きすぎるんだろうけど。