-
Notifications
You must be signed in to change notification settings - Fork 21
CSA プロトコル対応サーバーの利用方法
ShogiHome は CSA 通信プロトコル (以下「CSA プロトコル」と表記)のクライアントとして機能しますが、実際に通信対局を行うにはプロトコルに対応したサーバーが必要です。 この資料では実際に CSA プロトコルを利用して対局を行うためのサーバー環境の準備方法をまとめます。
CSA プロトコルを利用する主な選択肢は次のとおりです。
- shogi-server を自分で動かす。
- Floodgate を利用する。
- TEST56 を自分で動かす。
2024 年現在、Floodgate や世界コンピューター将棋選手権 (WCSC)、電竜戦のいずれも shogi-server かもしくはその派生バージョンが使われています。
Floodgate や電竜戦をはじめ、ほとんどの将棋 AI 関係者が利用しているサーバー実装です。
https://github.com/shogi-server/shogi-server
例えば ./shogi-server test 4081
というコマンドで起動すれば、test-30-5F,FooBarBaz
といったパスワードでログインして対局を行えます。
パスワードの規則については Floodgate で説明が書かれていますが、 test-30-5F,
で始まる場合には持ち時間 30 秒 / 5 秒加算を意味します。
カンマより後は任意の値を書くことができ、この値とログイン ID によって同一ユーザーかどうかを判別します。
対局した棋譜や結果はファイルとして保存されます。 またレーティングを計算するスクリプトが付属しています。
https://shogi-server.osdn.jp/rating.html
例えば ./mk_game_results . | ./mk_rate | ./mk_html > rate.html
を実行すれば HTML でレーティング表を作成することができます。
(rb-gsl, rubygems, rgl あたりがインストールされている必要がありそうなので、エラーが出る場合は適宜インストールします。)
shogi-server には 評価値と読み筋を送る拡張 が実装されいます。 これは CSA プロトコルには規定されていない独自拡張ですが、コンピューター将棋関係者の間では広く認知されており WCSC でも利用できるようになりました。 今後 CSA プロトコルに取り込まれるかもしれません。
shogi-server には 拡張モードが存在します。
拡張モードは対局者だけでなくサーバー管理者として利用することも可能です。
特に %%SETBUOY
コマンドを使うと開始局面を変更することができます。
しかし、(2023 年 8 月現在) shogi-server の buoy には消費時間の計算に問題があり、フィッシャールールを使用した場合に指定局面までの Increment が加味されず、クライアントが認識している時間より早く時間切れになってしまいます。
buoy を設定するには例えば telnet で接続した上で、以下の要領でコマンドを使用します。
- 接続
telnet localhost 4081
- ログイン
LOGIN master pass1 x1
- 設定
%%SETBUOY buoy_test-10-2F +5756FU-3334FU+2858HI
- 確認
%%GETBUOYCOUNT buoy_test-10-2F
- 解除
%%DELETEBUOY buoy_test-10-2F
上記のコマンド中の値はあくまでも一例なので、適宜書き換えて使用してください。
ログイン ID master
やパスワード pass1
は使用可能なワードなら何でも良いようですが、一度作った設定は同じユーザーでログインしないと削除できないようです。
また、拡張モードを指定する x1
を付けなくても動くようです。
上記の例では telnet を使用していますが、 ShogiHome の管理モードログインでも任意のコマンドを実行できます。
shogi-server において floodgate-
で始まるゲーム名は特別な扱いになっており、この名前を使うと自動でマッチメイクが行われません。
具体的な実装箇所は /shogi_server/league/floodgate.rb#L15 なので、この行を return false
に書き換えれば回避可能です。
おそらくは Floodgate で決まった時刻に一斉に対局を始めるためだと思われます。
なお、将棋所で連続対局をするには Floodgate モードログインを使う必要がありますが、その場合に任意のゲーム名を設定できず、強制的に floodgate-300-10F
になります。
http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
東京大学で運用されている shogi-server です。 他の参加者と自動で対局が組まれ、 Web サイト上でレーティングや対局の内容、評価値等を確認できます。 Web サイトの説明に従って利用します。
基本的には AI の性能を見るためのものであり、基礎的な動作確認はローカル環境で事前に済ませておくか、自動でマッチメイクされないモードでログインすることが望ましいでしょう。
TEST56 は都万氏によって開発された CSA プロトコルのサーバーです。 Windows の GUI アプリケーションとして動作します。 開発当時の WCSC の対局ルールを想定した簡易的な検証を目的としたものだと思われます。 そのため、フィッシャールールや持ち時間の調整などはできないようです。 また、勝敗を表すコマンドが間違っている等の不具合があります。
2023 年現在、かなり前からメンテナンスされている様子はありません。 理由が無ければ shogi-server を使った方が良いと思われます。
使用する場合は http://www2.ttcn.ne.jp/~tsuma/down2012.htm から TEST56 をダウンロードします。 加えて VC 2012 用の DLL も案内に従ってインストールします。