Skip to content

Yoka0014/GomokuServer

Repository files navigation

概要

サーバーは各エンジン(AI)と標準入出力(stdin/stdout)を通じて、テキストベースのコマンドで通信する。 サーバーは、盤面の状態や手番、制限時間、相手の手などをコマンドとしてエンジンに送信し、エンジンは指示に従って応答する。

エンジン側には、quitコマンドが与えられるまで、コマンドが与えられ続ける。

盤面の座標と表現

盤面の座標は左上から行方向(上から下、左から右)に0から順に番号が振られる。

例えば、9路盤の場合の座標割り当ては以下の通りである。

  0  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 31 32 33 34 35
 36 37 38 39 40 41 42 43 44
 45 46 47 48 49 50 51 52 53
 54 55 56 57 58 59 60 61 62
 63 64 65 66 67 68 69 70 71
 72 73 74 75 76 77 78 79 80

サーバーから送られるコマンド

posコマンド

pos S x

posの後に,半角スペース区切りで,盤面の石の配置を表す文字列 $S$ と手番を表す文字 $x$ が与えられる. $S$$i$ 文字目 $S_i$ は,盤面の座標 $i$ の交点の状態に対応しており,黒石があるときは $S_i = \mathtt{'X'}$ ,白石があるときは $S_i = \mathtt{'O'}$ ,空き交点のときは $S_i = \mathtt{'-'}$ となる. 手番 $x$ は,黒番のときは $x = \mathtt{'X'}$ ,白番の時は $x = \mathtt{'O'}$ となる.

このコマンドが与えられるのは対局開始時のみであり、以降はエンジン側で局面を管理する。 また、posコマンドに対して、エンジン側は何らかの応答を返す必要はない。

moveコマンド

move C

moveの後に,座標を表す整数 $C$ が与えられる.

これは相手のエンジンが座標 $C$ に着手したことを意味する。 moveコマンドに対して、エンジン側は何らかの応答を返す必要はない。

goコマンド

go T

goの後に,制限時間を表す整数 $T$ が与えられる.

エンジンは、goコマンドを受け取ったら $T$ ミリ秒以内に着手をmoveコマンドと同様の形式で返さなければならない。 ただし、制限時間 $T$ はエンジンが守るべき制限時間であるが、サーバー側では時間を測っていないので、多少応答が遅延しても問題はない。 スポーツマンシップに則り、エンジン側が時間を守ることを期待する。

quitコマンド

quit

quitという文字列のみが与えられる.

これを受け取ったエンジンは、10秒以内に自身を終了させなければならない。 10秒以内に終了できなかった場合は、サーバー側から強制終了させる。

入力例

9路番において天元(中央の交点)に既に黒石が置かれており,白番から着手を開始するケースを考える. Engine 1を先手,Engine 2を後手とする.

Server to Engine 1: pos ----------------------------------------X---------------------------------------- O
Server to Engine 2: pos ----------------------------------------X---------------------------------------- O
Server to Engine 1: go 1000
Engine 1 to Server: move 31
Server to Engine 2: move 31
Server to Engine 2: go 1000
Engine 2 to Server: move 32
Server to Engine 1: move 32
Server to Engine 1: go 1000
.
.
.
Server to Engine 1: quit
Server to Engine 2: quit

なお、連続して対局を行う場合、次の対局開始時にposコマンドが再び与えられる。

備考

  • 詳細は Engine.cs および Game.csSendCommand, SetPosition, Think, SendMove などのメソッドを参照してください。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors