TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

floodgateで任意のソフト同士で対局する方法

floodgateは、30分置きに自動で対局が始まるコンピュータ将棋の対局サイトだが、任意のタイミングで2つのソフトを対局させることができる。

CSAサーバプロトコル

CSAサーバプロトコルでは、%%GAMEでgamenameを指定することで、対局条件が同じソフト同士の対局が開始する。

gamenameは、test-600-10Fのように「名前」-「持ち時間」-「1手ごと加算時間」を指定する。
1手ごと加算時間は、末尾にFを付けるとフィッシャークロックルールになる。

手番を指定する場合は、gamenameの末尾にスペースの後に「+」か「-」を指定する。

shogi-serverで対局する方法

shogi-server改造したバージョンを使用して、対局する方法について記述する。

shogi-serverのスクリプトを使用する場合は、PASSWORDで、gamenameを指定する。
,区切りの1番目がgamename、2番目がパスワードになる。

先手後手は、+-ではなく、-の後に「b」か「w」で指定する。

名前がtest、持ち時間300秒、10秒加算、先手番、パスワードfoobar1の場合の例:
test-300-10F-b,foobar1

ID、PASSWORDを環境変数で渡す場合の、スクリプトのコマンド例は以下の通り。

ID=test1 PASSWORD=test-300-10F-b,foobar1 ./usiToCsa.rb --host wdoor.c.u-tokyo.ac.jp --floodgate --ponder --keep-alive=60 --options USI_Ponder=true /work/bin/usi

同様に後手番も以下のように指定して実行すると対局が始まる。

ID=test2 PASSWORD=test-300-10F-w,foobar2 ./usiToCsa.rb --host wdoor.c.u-tokyo.ac.jp --floodgate --ponder --keep-alive=60 --options USI_Ponder=true /work/bin/usi

観戦

コンピュータ将棋対局場"の観戦ー>対局リスト: 全てのリンクで、現在対局中の一覧が表示されるので、その中に条件を指定して起動した対局も表示される。