/OnlineJudgeHelper

A scriprt to improve the usability of online judges

Primary LanguagePython

オンラインジャッジ補助スクリプト OnlineJudgeHelper

1. はじめに
このスクリプトは各種オンラインジャッジを利用する際、
サンプル入出力データを用いたテストやソースコードの提出等を
素早く行うことを目的に作りました。
まだ未完成のスクリプトですのでパッチ等は大歓迎です。

2. 仕様

2-1. 機能
- 解答ソースコードのコンパイル
- サンプル入出力データのダウンロード
- サンプル入出力データとの一致確認
-- 単純diffバリデータ
-- 浮動小数バリデータ
- 解答ソースコードの提出

2-2. 対応オンラインジャッジ
- PKU JudgeOnline
- CodeForces (サンプル入出力データのダウンロードのみ)
- MJudge
- AOJ
- CodeChef (サンプル入出力データのダウンロードのみ)
- ImoJudge (サンプル入出力データのダウンロードのみ)
- AtCoder
- ZOJContest

3. 使い方
./oj.py [options] ... [contest_id] problem_id

3-1. 初めて使う場合
設定ファイルを"setting.json"という名前で作成し、
oj.pyと同じディレクトリに配置して下さい。
内容は各種オンラインジャッジのユーザーID、パスワード、起動するブラウザを
json形式で書いたものです。

例:
{
  "atcoder":{"user_id":"nodchip","password":"hogehoge", "browser":"C:/Users/nodchip/AppData/Local/Google/Chrome/Application/chrome.exe"},
  "zoj":{"user_id":"nodchip","password":"fufagufa", "browser":"C:/Users/nodchip/AppData/Local/Google/Chrome/Application/chrome.exe"}
}

3-2. オプション
  -h, --help            ヘルプを出力します
  -c, --create-solution-template-file
                        解答ソースコードのコンパイルと
                        サンプル入出力データとの一致確認を行います
  -s, --submit          解答ソースコードを提出します
  -a, --add-test-case-template
                        入出力データのひな形ファイルを追加作成します
  -i SOURCE_FILE_NAME, --source-file-name=SOURCE_FILE_NAME
                        ソースコードファイル名を指定します
  -t, --titech-pubnet   東工大内ネットワークからプロキシを使用して接続します
  -e FLOATING_POINT     許容誤差を指定して浮動小数バリデータを使用します
  -d, --download        サンプル入出力データのダウンロードのみ行います

  --poj                 PKU JudgeOnline
  --codeforces          CodeForces
  --mjudge              M-Judge
  --aoj                 Aizu Online Judge
  --codechef            CodeChef
  --imojudge            Imo Judge
  --atcoder             @coder
  --zojcontest          ZOJ Contest

4. その他
OnlineJudgeHelperは幾つかのブログで紹介されました。
この場を借りて御礼申し上げます。

- [O] PKUやCodeforcesなど5つのオンラインジャッジ対応の神スクリプト http://diary.overlasting.net/2011-02-12-1.html
- 情報系の備忘録: 神スクリプトの使い方 Codeforces編 http://joho-log.blogspot.jp/2011/08/codeforces.html
- こどふぉのすすめ - wisteryメモ http://d.hatena.ne.jp/wistery_k/20111226

5. 変更履歴
2012-04-14
- 新AtCoderに対応した
- 提出時の言語選択をソースコードファイル名を元に行うようにした
- 対応言語を追加した