コンソールアプリで将棋所のUSIプロトコルとの通信成功!

 将棋ベーシック改での電竜戦出場は0回戦を主催のカツ丼さんにメールして、自宅でアプリを操作して将棋所への手入力で通信して参加させてください!とお願いして、承諾してもらったのですが、他の参加者はほぼすべて自動で動き続けるプログラムをサーバーコネクトして放置プレイなところ、丸2日パソコンにへばりついて見張って対局のたびに手入力の繰り返しという裏方事情で運用していました。

 次は通信アプリとしての機能を備えて手入力無しの0回戦突破を目指しています。

 とりま、USIプロトコルの仕様を彼是4年間くらい読み込んで(といっても時々思い出してくらいのことだけど)何とか初期化して初手投了というUSIのC++マニュアルを参考にVBのコンソールアプリとして将棋所との通信に成功しました。

 まあ通信のテストするなら家にもう一台マシンあった方が良いかもなぁ、とは思いつつ、マニュアルの作者さんも4年開発が止まっている模様で、1年でこれくらいのペースでも開発としては悪くないのかなと(進捗ゼロでも普通だから)

 どのみち、ここに将棋ベーシック改のエンジンとの接合が出来たとして、モンテカルロ法、駒徳の評価関数、機械学習というファンの方でも読み慣れた字面以上の開発は進んでいないので、通信がオートになる以上に指し手の変化は現れていません。

 まあ将棋所のデバッグウインドウをログると、盤面がSFEN文字列ではなく初手からの進行で送信されているようなので、盤面生成にも年単位で開発が必要なのかなと。

 恐らく開発者の何割かはOSSで公開されているプロジェクトへのアペンドで参加しているようなので、それはそれで先端開発を理解してもう一歩行ける力が必要で、まずは自動で対局できるところを目標として、現状、参加して1手目もしくは2手目投了というこのプログラムで参加という事は考えず、出るなら一矢は報いたく、その見込みが出来るのはまだまだ先になるかなと。

 「何か取れたら賞金山分けだぁ!」とか何とか誘った最初の仲間(デバッグチーム)にもビールの一杯も出せないまま愛想を尽かされて、まあそれでも孤軍奮闘ということではなく、先陣ではないかもだけど他の開発者との情報交換で一歩ずつ進んでいるので、出来る仕事をやったら良いのかなと。これ賢い人なら秒でプログラムしてしまうことを試行錯誤の上に積み立てていて、同様に俺が製造業とかの現場に行くと組み込みを三日で片付けたものが年単位で動いているというような事案もあり、んでそれが自慢したいのかというとそうではなく競プロ長期とかに参加している人も将棋に来られませんかと。

 けど、短期でプログラムをガガッと組んで閃いて強くする感じではなく、今年はたぬきさんの優勝という事で、計算を自動化したモジュールの組み合わせで学習パラメータをいじって年単位の実験を繰り返してちょっとずつ強くなる、やがて何らかブレイクスルーが起こるかもというような現場感覚かも知れないですね。

 だからまあ、基礎モジュールから一個ずつ自動化していく今の作業にも俺のラボではすごく意味があるわけで。

 さて、こぼした愚痴の文字数が開発中のプログラムの文字数をはるかに超えたのでここいらで今日の文句は終了!たぶんまた興奮が冷めたら忘れてテレビゲームでもしていると思います。

 あと、連絡が取れていないのと開発者ご本人かどうかも分からないのですがQiitaにUSIプロトコル関連のマニュアルを投稿してくださった天草四郎さんへの感謝を込めて。


🄫1999-2023 id:karmen