将棋所でscoreのところに任意の文字列を表示したい

将棋で盤上の駒の状態が変わらず手駒だけが減っていくような反復局面が出現することがあります。「56歩58金57歩成同金」みたいな繰り返しで歩を損していくパターンですね。コンピューター将棋の思考ルーチンでは、この反復局面を検出すると、これは反則負け扱いの値をつけることがあります。こんな手は指すはずがない、指していいはずがないという意味で、です。Bonanzaではscore_inferiorがこれを表現する定数となっています。

これがPVに出現したときに将棋所のPVとしてscore_inferiorの値を表示させても仕方ないので何かscoreのところに任意の文字列を表示したいのですが、そういう記法は用意されておらず…。


あとは思考エンジンをデバッグしていて、終局から3手前とか5手前のコンピューターの読み筋を表示してくれなくて、思考エンジンがいつ詰みを発見していたのかを調べるために、USIのデバッグウインドゥを開いて探すような作業が入って、このへん余分に工数がかかりすぎて大変だるいのです。

思考エンジンから別途ファイルにでも思考ログを書きだしておけばいいと言えばいいのですが、棋譜ウインドゥで指し手をマウスでクリックしたときに、さっき表示していた、思考エンジンが"info string"で送信した読み筋を表示するように変更するぐらい将棋所の作者的にはどうってことないはずなのに…。

将棋所は機能的にはずいぶん優れていて、これと同等のものを作ろうと思うと結構大変ではあるのですが、まあ、なんと言いますか、自分で思考エンジンを書いていない人が開発しているので、「なんかそのへんわかってないなぁ」感はあります。

あと、USIプロトコルデバッグのために書いていた盤面を表示するコードが残っていることがあって、そういう不正な文字列を将棋所に送信した場合に思考エンジン側が不正終了してしまう(?)ようです。せめて「思考エンジンが送ってきたこの文字列が不正で、だから終了させます」ぐらい表示してくれればいいのになぁと思います。

将棋所のUIは使用するユーザーには優しいのですが、思考エンジン開発者には厳しい。そんな印象を受けました。


思考エンジンの過去の読み筋についてはもしかして何か特殊な操作で解決したりするのでしょうか?

何か良い方法があるのであれば、コメント欄にて教えていただきたく。