2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

tweet

  • tweets

« 統計なんて当てにならんよ…統計的に言って。 | トップページ | GPSをソースからビルドしてみた(無謀にも) »

CSAプロトコルでの詰みの扱い

最近floodgateで妙にtimeupが多いなーと思ってたんですが、よくよく見ると、詰んでても詰まされた側が投了しないとWIN/LOSEでなくtimeupになるんですね。akara1cさんとか、yss4gps4とか。

CSAプロトコル読み返してみましたが、たしかに詰みになったときに即サーバから何か送る、という規定はないようです。ただ、一方

  投了、千日手ほか、対局の終了もしくは中断に至る何らかの事象が発生した場合、
  サーバは '#' で始まる文字列を2行続けて送信し、何らかの事象の発生を通知する。

という記述もあるので、詰みになったらサーバが"#TSUMI"とか送った方がいいのでは?という気もします(対局の終了に至る事象、ですよね)。クライアント側が、詰まされたら必ず%TORYOを送るべし、という考え方もありますが、一般論としてこういうのはサーバ側でハンドルすべきような気もちらほら。

現実問題としては、大方の場合は詰まされた方がtimeupで負けるので、勝敗的には問題ないといえばないんですが、後で結果を見るときハングやネットワーク切れでtimeupになったのか、詰まされて負けた(勝った)のか一見わからないのはちょっと困るような気もします。
あと私の環境だとよくネットワークが切れるので、せっかく詰まして勝っても、相手が黙ってる間にネットワークが切れてabnormalになったりするともったいないなぁ、とかも思ったり。もうちょいけちくさいことを言うと、58分くらいで詰んで、すぐ終われば00分から対局できるのに、timeupまで待ったために00分からのマッチングを逃したり、とかもありそう。

これって、プロトコルとしてはどうあるべきなんでしょうね?

« 統計なんて当てにならんよ…統計的に言って。 | トップページ | GPSをソースからビルドしてみた(無謀にも) »

将棋プロセサ」カテゴリの記事

コメント

物理将棋盤を使った対局をおおむね忠実にネットで再現する、という設計思想のもと、このようにしています。
千日手や禁手の判定は記録係が行うこともありますから、その部分はサーバが判定することにしていますが、詰みかどうかは、自らの勝ち負けを考える範囲内のこととして、サーバで判定せず投了の作法で統一しています。

時間を無駄にしないためには、やはり速やかに投了するのが一番でしょう。詰んだら自動的に終局、という方式で時間を節約することは可能ですが、詰む2手前で停止してしまうような対局者には無力ですので効果は限定的です。
もっともこの部分は独自拡張しても他の部分に大きな影響はないので、プロトコル規定外のサーバ独自拡張を要望してもよいかもしれません。

何か書こうかと思ってたんですが、いつのまにかakara2cさん投了するようになってますね。じゃあ当面困らないのでまいっか…

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/507007/36132664

この記事へのトラックバック一覧です: CSAプロトコルでの詰みの扱い:

« 統計なんて当てにならんよ…統計的に言って。 | トップページ | GPSをソースからビルドしてみた(無謀にも) »