AtcoderGreedy
楽にatcoderを使いたい. Atcoderで行われるコンテストにおいて, 自動でテンプレートやインプットを生成するGemです. 何かありましたらtwitter: @brook_bachまでお願いします.
実装した機能
- コンテストフォルダ, 問題ファイルの生成
- サンプルインプット、アウトプットを用いたテストファイルの生成, テスト実行
- ユーザーテンプレート機能
- 提出機能
- ruby, c/c++ に対応
Installation
$ gem install atcoder_greedy
初期設定
configコマンドを使用してデフォルト言語の設定をしてください。
$ atcoder_greedy config
Choose default language from: ["rb", "cpp", "c"]
Input languages: cpp
Update Your default language to [cpp].
$
Usage
Createコマンド
コンテスト用のフォルダ, ファイルを作成します.
$ atcoder_greedy create CONTEST_URL OPTION
作成時に使用できるオプション
option name ARGUMENT | alias | detail |
---|---|---|
--no-templates | --nt | テンプレートファイルを生成しません. |
--no-input | --ni | 入力ファイルを生成しません. |
--select-problem PROBLEM_NAMES | -p | 指定した問題のみ生成します. 複数の問題を指定する場合は'A B' のように''で囲ってください. |
--select-directory DIR_PATH | -d | 指定したディレクトリに生成します. |
--select-language LANGUAGE | -l | 指定した言語でテンプレートを生成します. |
--select-template TEMP_NAME | -t | 指定したテンプレートで生成します. |
testコマンド
テストを実行します. 入力ファイルが生成されている必要があります.
$ cd CONTESTNAME
$ atcoder_greedy test PROBLEM_FILE_NAME
templateコマンド
テンプレートの設定を行います. テンプレートは複数保存でき, 言語毎に一つデフォルトテンプレートを設定することができます. デフォルトに設定されたテンプレートは, createコマンドで作成するときに使用されます.
$ atcoder_greedy template OPTION
使用できるオプション
option name | alias | detail |
---|---|---|
--add FILE_PATH | -a | FILE_PATHで指定されたファイルをテンプレートに追加します. |
--list | -l | テンプレート一覧を表示します. |
--set-default FILE_NAME | -s | FILE_NAMEで指定されたテンプレートをその言語のデフォルトに設定します. |
--delete FILE_NAME | -d | FILE_NAMEで指定されたテンプレートを削除します. |
submitコマンド
問題の提出を行います. コンテストディレクトリ内で実行してください.提出が成功した場合, 結果画面をブラウザで開きます.
$ atcoder_greedy submit [SUBMIT_FILE]
使用例
例1
ARC014の場合
$ atcoder_greedy create http://arc014.contest.atcoder.jp
とすると、以下のようなファイルが生成される。
.
├── .contest_info.yml
├── A.rb
├── B.rb
├── C.rb
├── D.rb
├── input_A.txt
├── input_B.txt
├── input_C.txt
└── input_D.txt
各問題について,X.rbに自分の解答を記述すれば良い。 input_X.txtにはX.rbのサンプルインプット,アウトプットが記載されている.
A問題についてテストを実行するには、
$ atcoder_greedy test A.rb
とすると、以下のようにテスト結果が表示される。
Running a test for problem A.rb...
-------------------- Compile Done --------------------
-------------------- Testcase #0 -------------------- FAILED! Time: 0.00727s
Your Output:
5
Correct Answer:
1
-------------------- Testcase #1 -------------------- PASSED! Time: 0.04882s
-------------------- Testcase #2 -------------------- FAILED! Time: 0.00614s
Your Output:
3
Correct Answer:
1
Test done.
A問題を提出したい場合は,
$ atcoder_greedy submit A.rb
Submit [A.rb] ... Done!
例2
ARC015にて, カレントディレクトリにA問題のインプットファイルのみ生成したい場合
$ atcoder_greedy create http://arc015.contest.atcoder.jp --nt -p A -d ./
TODO,実装したい機能
- 言語対応の拡大
- gemのテスト作成
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/atcoder_greedy. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.