USI形式の将棋GUIを作る(その4)

だいぶ出来てきました。


まだまだ必要な機能がありますが

  • ソケット通信で将棋サーバーと接続する
  • 連続対戦
  • 棋譜を保存する


まずはこのへんですか。


最終的には

  • 棋譜を読み込む
  • エンジンを登録する機能
  • 盤面を編集する
  • 評価値をグラフ表示する
  • npsや探索ノード数などを表示する

このへんも必要(対戦するのに必須ではないので、当面優先順位低)


USIプロトコルに関しては将棋所サイトが本家なので、
そのあたりの仕様を実現していく感じですね。


思考エンジンを作っているとhashのヒット率とか、futilityのカット率とか、
nps以外にもモニターすべきパラメーターが多数があるんですが、
そのへんをUSIプロトコル的にゲットする仕様がないので、
optionみたいに、ユーザーがパラメーターを定義できるような仕組みがあると良いと思いますね。
当面は、info string hashMoveCut 82
みたいなプロトコル・トンネル的にやっときますかねえ(^^;


時間もないんで、凝ったことしてる暇無いです。


むしろ、位置評価込みの駒価値を駒の上に重ねて表示するみたいな仕組みが欲しいです。
このへんの値は思考エンジンに聞かないと判らないので、
info string PositionalMaterialMatrix 50/50/50/45/43/54/23/21/……
みたいに、位置評価込み駒価値を81マス分返すプロトコルとかいるかも。


利き評価も
info string kikiMatrix 1/2/2/-1/0/1/……
みたいに返してくれるといいかな。
(利きは、GUIで計算してもいいでしょうけど、面倒だしねえ(^^;)



さすが.Netは中間言語で動くので、GUIのEXEファイルが28KBしかありません。小さいです(^^;