サーバの仕様

目次


状態遷移

(標準)CSAモードと拡張モードの二つをサポートする。状態遷移図

CSAモード

login
client: LOGIN username passwordで接続。 game_waiting ステータスに移行。password として gamenameとして適切な文字列を送ると gamename としてマッチングに用いられる。そうでない場合は、 default-1500-0に固定。どちらの場合も先手、後手 の選択は出来ない。
game_waiting
server: 相手が見つかると対局条件表示。agree_waiting ステータスに移行
agree_waiting
client: AGREEで条件受け入れ。gameステータスに移行
game
client: 対局
server: 対局終了で切断

拡張モード

CSAモードとの違い:

login
client: LOGIN username password x1で接続
server: ##[LOGIN] +OK x1 を送る。clientは connected ステータスへ
connected
client: %%GAMEコマンドでgamenameを指定すると、game_waitingステータスに移行
client:%%CHALLENGEコマンドで既に待っ ている人のいるgamenameを指定するとagree_waitingステータスに
game_waiting
server: gamename毎に先手後手が揃うと、対局条件表示.agree_waiting ステータスに
client: 取り消す場合は%%GAMEコマンドで connectedに戻ることが可能。
agree_waiting
client: AGREEで条件受け入れ。gameステータスに移行
game
client: 対局
server: 対局終了でconnectedステータスに移行

文法

username
LOGINの際にクライアントが名乗る文字列.A-z0-9@_-. だけが使える.文字数制限は未定.
gamename
対局のマッチングに使われる文字列.拡張モードでは%%GAMEコマンドでクライアントが指定する.CSAモー ドでは固定.書式はname-total_time-byoyomi_time
game_id
対局毎にサーバが指定する文字列.現在はgamenameとusernameと時刻を 組み合わせたもの.

拡張コマンド

拡張モードでのみ利用可能

%%WHO
クライアントの一覧が出力されます.
%%CHAT string
チャットします.拡張モードのクライアント全てに送信されます. 現在 utf-8 が de facto standard になっています. 空行を読みとばされます (keep-alive のためにクライアントから 空行を送って良い)
%%GAME gamename [+-*]
対局待ちになります.
%%CHALLENGE gamename [+-*]
対局をします。 %%GAMEと%%CHALLENGEの違いは、相手が見つから なかった場合に game_waitingに入るか否か. 対局相手が見つからない場合は(もともと相手が いなかったり、競合で負けた場合など)、 %%GAMEではエラーが表示されないが,%%CHALLLENGEの場合は、表示される。
%%LIST
game_idの一覧が出る。
##[LIST] b-1-a-20040626025755
##[LIST] +OK
%%SHOW game_id
盤面表示
%%SHOW b-1-a-20040626025755
##[SHOW] BEGIN Game_Summary
##[SHOW] Protocol_Version:1.0
##[SHOW] Protocol_Mode:Server
##[SHOW] Format:Shogi 1.0
##[SHOW] Game_ID:wdoor+yowai_gps-1500-0+test+yowai_gps+20041020235953
##[SHOW] Name+:test
##[SHOW] Name-:yowai_gps
##[SHOW] Rematch_On_Draw:NO
##[SHOW] To_Move:+
##[SHOW] BEGIN Time
##[SHOW] Time_Unit:1sec
##[SHOW] Total_Time:1500
##[SHOW] Byoyomi:0
##[SHOW] Least_Time_Per_Move:1
##[SHOW] Remaining_Time+:1488
##[SHOW] Remaining_Time-:1489
##[SHOW] Last_Move:-1213FU,T1
##[SHOW] Current_Turn:2
##[SHOW] END Time
##[SHOW] BEGIN Position
##[SHOW] Jishogi_Declaration:1.1
##[SHOW] P1-KY-KE-GI-KI-OU-KI-GI-KE *
##[SHOW] P2 * -HI *  *  *  *  * -KA *
##[SHOW] P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
##[SHOW] P4 *  *  *  *  *  *  *  *  *
##[SHOW] P5 *  *  *  *  *  *  *  *  *
##[SHOW] P6 *  *  *  *  *  *  * +NY *
##[SHOW] P7+FU+FU+FU+FU+FU+FU+FU * +FU
##[SHOW] P8 * +KA *  *  *  *  * +HI *
##[SHOW] P9+KY+KE+GI+KI+OU+KI+GI+KE *
##[SHOW] P+00KY
##[SHOW] P-00FU
##[SHOW] +
##[SHOW] END Position
##[SHOW] END Game_Summary
##[SHOW] +OK
%%MONITOR{ON,OFF}
指定した対局の観察を継続的に行う/解除する (サーバのRevision 1.15以降)
%%RATING
サーバが管理するプレイヤーのレーティング一覧を表示します(サーバのRevision 1.47以降)

プロジェクトの情報
$Date: 2008-10-20 13:06:02 +0900 (Mon, 20 Oct 2008) $