オセロプロトコル(暫定)
ご希望にお応えして(?)。以下の入力に対応したプログラムを書いていただければ対戦できるかと。
以前、周りの人間と棋譜訂正したときにてきとーに決めたので、一般的ではない、拡張とかそういった周りあまり考えてません。なんかあったら誰か指摘して。
入力は標準入力、出力は標準出力を使います。入力はサーバーから送られてきます。必ず2行構成で、1行目がコマンド、2行目が引数(空行のことあり)。出力は必ず1行(空行のことあり)。
- START
- ゲームの開始時に送られる、引数なし、出力なし
- NEXT
- 次の一手、引数に盤面と自分の色、着手場所を出力(下記サンプル参照)
- END
- ゲーム終了、落ちてください、引数なし、出力なし
こんな感じ。
;開始時 SERVER --> CLIENT START\n\n SERVER <-- CLIENT \n ;初手 SERVER --> CLIENT NEXT\n---------------------------OX------XO--------------------------- X\n SERVER <-- CLIENT D3\n ;次 SERVER --> CLIENT NEXT\n-------------------X-------XX------XO--------------------------- O\n SERVER <-- CLIENT C3\n ;終了 SERVER --> CLIENT END\n\n SERVER <-- CLIENT \n ;この後、終了してください
プログラム的には、"SERVER --> CLIENT"の部分が標準入力から送られてきます。"SERVER <-- CLIENT"の部分のような出力をしてください。
空行が多いですね。いらない気もしますが、そのうち使うかも。。。NEXTの引数は、"[盤面] [自分の色]"で間にスペースが入ります。盤面は'O'が白、'X'が黒、'-'が空きの意です。着手場所は左上をA1、右下をH8とする、一般的な[A-H][1-8]形式で。