通信対戦について

<2004.09.15更新>

通信対戦ライブラリ

NNGSにおいて通信対戦を行なうプログラムを作成するためのライブラリ、サンプルプログラム等を公開しました。

通信対戦対応ライブラリについて<2004.09.14>


概要

通信対戦の方式として、TCP/IPネットワークを用いたNNGSプロトコルを採用します。ただし、今回の大会では、終局時の手順を簡略化します。

通常、NNGSにおける対局は以下の手順で行なわれます。

ただし、各プログラム間で対局結果の判定が一致しない際の処理を簡単に行なうため、今年の大会においては、終局時の手順を以下のように簡略化します。

以下の場所に参加予定者が動作確認に使用するためのサーバを用意しましたのでご利用ください。(NNGSのソースコードには変更を加えていません。通常のNNGSと同じものです)

nngs.computer-go.jp 9696

コンピュータ囲碁プログラムがNNGS通信対戦に対応するためのサンプルプログラムも公開する予定です。


NNGSについて

NNGSはTCP/IPネットワーク上で通信対局を行なうためサーバシステムです。telnet等のコマンドを使用して文字情報の送受信によって対局を行ないます。サーバ側の通信ポートは9696番を使用します。

telnetコマンドでサーバにアクセスすることができます。試しにテスト用サーバにアクセスしてみてください。(Telnetクライアントソフトウェアを用いるか、またはWindows OSでも標準でDOSプロンプト等からtelnetコマンドが使えます)

telnet nngs.computer-go.jp 9696

Login:

このようにサーバから「Login:」という文字列が送信されてきた時に、適当な名前を入力すれば、ゲストユーザとしてログインできます。

ログインの後、「match」コマンドを使用して、他のユーザに対局の申し込みを行なうことができます。

実際に対局を行なった時の通信の記録を置きますので参考にしてください。なお、座標表現は左下が原点で、横方向がAからT(Iを飛ばす)、縦方向が1から19で表現されます。

このログは、以下の条件で対戦を行なったものです。

等幅フォントの方が見易いです。各プレイヤがサーバに送信した文字が赤色で表示されています。それ以外の部分は、サーバから受信した文字列です。

playera側の記録
playerb側の記録

ログイン後に、「set client TRUE」(「toggle client TRUE」も可)というコマンドを入力すると、通信の際の表示が非常にシンプルになります。これは、IGSという対局サーバシステムと互換のある表示モードです。

既にIGSに対応しているソフトウェアの場合には、この表示モードを使用すれば簡単にNNGSにも対応が可能です。こちらのシンプルな表示の場合の通信記録も以下に置きます。これも同じ棋譜を使用しています。(上の記録とは別に入力したため、消費時間は異なります)

「set client TRUE」を指定した時のplayera側の記録
「set client TRUE」を指定した時のplayerb側の記録

上の記録では、死に石の情報をサーバに送信して結果の合意手続きまで行なっていますが、今回の大会では、双方がpassを送信するところまで正常に通信ができればOKです。

その他、「set client FALSE」かつ「set verbose FALSE」というオプションを指定すれば、上のIGS互換モードとはやや異なりますが、同じくシンプルな表示になります。


リンク

NNGSのページ
http://nngs.cosmic.org/