CSA server protocol defect report

CSAサーバプロトコルの実装の際に気づいた、仕様に問題がある点を示します。

引用元は CSAサーバプロトコル V1.1.3 です。

持将棋

Declaration: (省略時は情報なし)

ゲームのプレイ時、指し手以外の宣言に関する規定を示す文字列を表す。情報の意味は、Formatに記述された文字列に依存する。 'Jishogi 1.1' の記述がある場合、日本将棋連盟ルールに基づく、入玉による勝利宣言ルールが採用されることを示す。 現状では、この記述のみ許可されている。

まず、"Jishogi 1.1" の記述が「ない」場合、どのように解釈すべきでしょうか。この記述「のみ」許可、ですから、(1) "Jishogi 1.1" とみなす、(2) このゲームで持将棋はない、あるいは、(3) 持将棋しようとすると鼻から悪魔、のいずれかですが、どれでしょうか。

「日本将棋連盟ルール」というのが何を指しているか、ですが、ルールを解説している 将棋について-本将棋[4.王手と詰み]:日本将棋連盟 は次のようになっていて困ります。

※決着がつかず、引き分けになる「千日手」「持将棋」と呼ばれるものもありますが、初心者同士の対戦で現れる事はまずないので、ここでは省略いたします。

確かに、私のような初心者同士で、千日手や持将棋になったことは一度もないですが。

質疑応答:日本将棋連盟 には、次の3つが併記されています。

  • プロの公式戦でのルール, 24点法
  • 27点法
  • 宣言法

この宣言法のことだろうと思うのですが、でも、本当に? 公式戦のルールは24点法とありますし、対局規定(抄録) にも、24点法しか書かれてませんよ?

中断

一方クライアントは、一定の状況のもとで、サーバに対局の中断を要請するため、

%CHUDAN

というメッセージを送ることができる。これを受け、サーバは対局の中断を宣言することがあるが、状況によってはこのメッセージを送ったクライアントを反則負けとして扱う。 クライアントによる中断要請の是非は、現状ではプロトコルの外部において規定されるものとし、このプロトコルでは規定を設けない。

まず、「一定の状況」とは何か。

クライアントからの中断要請を受け入れるかどうか、がプロトコルの範囲外、なのはいいのですが、受け入れる場合、または拒絶する場合のそれぞれ、どのようなメッセージを送信するかが不明です。これでは実装できない。