Skip to content

Latest commit

 

History

History
113 lines (106 loc) · 3.03 KB

File metadata and controls

113 lines (106 loc) · 3.03 KB

サーバ関係

  • 以下のコマンドでサーバーを起動 procon-server_win -c input.json -l :8080 -start 10s

  • 以下の

サーバーの準び

以下のような設定ファイルをinput.jsonというファイル名として/procon-serverディレクトリに挿入する(されている)。

{
  "teams": [
    "token1",
    "token2",
    "token3"
  ],
  "duration": 300,
  "problem": {
    "board": {
      "width": 6,
      "height": 4,
      "start": [
        "220103",
        "213033",
        "022103",
        "322033"
      ],
      "goal": [
        "000000",
        "111222",
        "222233",
        "333333"
      ]
    },
    "general": {
      "n": 2,
      "patterns": [
        {
          "p": 25,
          "width": 4,
          "height": 2,
          "cells": [
            "0111",
            "1001"
          ]
        },
        {
          "p": 26,
          "width": 2,
          "height": 2,
          "cells": [
            "10",
            "01"
          ]
        }
      ]
    }
  }
}

teams にはチームのトークン情報を記述します。
duration には試合時間を秒で記述します。
problem には問題の情報を記述します。problemの形式については募集要項を参照してください。
プログラムのlistenするポートはデフォルトでは 3000 番ですが -l :8000 のように実行時の引数に渡すと使用するポートを変更することができます。 または環境変数 PORT によっても指定できます。その際には PORT=8000 のように指定してください。

サーバーの起動

サーバーを起動させるには、/procon-serverにディレクトリを移動させ、以下のコマンドを実行させる。

procon-server_win -c input.json -l :8080 -start 10s

これを実行させても何も表示されないままであるが、それで大丈夫である。

問題情報取得(GETリクエスト)

/problem にtokenをつけてGETリクエストを送ることで試合情報が取得できます。 試合時間内であれば設定ファイルで記述したproblemが返却されます。

curl -v localhost:8080/problem -H "Procon-Token: token1"

回答提出方法(POSTリクエスト)

/answer にjsonをPOSTすることで回答を送信できます。 回答の形式については募集要項を参照してください。
テストで実行する場合は、以下のjsonファイルをカレントディレクトリに置いた状態で下のcurl ...というコマンドを実行してください。

{
  "n":3,
  "ops":[
    {
      "p":4,
      "x":1,
      "y":1,
      "s":2
    },
    {
      "p":11,
      "x":3,
      "y":-12,
      "s":3
    },
    {
      "p":25,
      "x":3,
      "y":3,
      "s":0
    }
  ]
}

回答が受理されるとrevisionという回答を受け付けた番号が返却されます。

curl -X POST -H "Content-Type: application/json" -H "Procon-Token: token1" localhost:8080/answer -d @solution.json