去年の 7 月からぼちぼちと AtCoder のコンテストに参加してはいるのですが、
茶と緑の間を行ったり来たりしていてキレたので、僕が考えた最強の AtCoder の CLI ツールを作成しました。
これを利用することで以下のデモのようにシュッとコードを書いて、シュッとテストして、シュッと提出することが可能です。
まだ、あまり実践でテストされていないし、サポートしている言語も多くないので、使ってみてなにか問題があった場合は GitHub で Issue や Pull Request をいただけると嬉しいです。
デモ
特徴
- インストールが簡単
- Docker を利用することにより簡単にテスト実行環境が整う
- テンプレート機能
- サンプルデータのダウンロード
- サンプルデータを利用したテスト機能 (Docker 上もしくはローカルで)
- コード提出機能
インストール方法
Mac ユーザーは Homebrew でインストールできます。
$ brew install sachaos/tap/ac-deck
Linux, Windows は GitHub にバイナリを置いているのでそちらを利用してください。
使い方
セットアップ
$ acd config
認証情報を入力してください。
注: 現状、 ~/.ac-deck.toml にパスワードなどをそのまま格納します。この挙動を理解して注意して使ってください。この挙動を修正することに興味がある場合は、ぜひコントリビュートしてください!
コンテスト参加の準備
$ acd abc150 prepare
Using template of python3
Generating testdata & source on abc150/abc150_a
Generating testdata & source on abc150/abc150_b
Generating testdata & source on abc150/abc150_c
Generating testdata & source on abc150/abc150_d
Generating testdata & source on abc150/abc150_e
Generating testdata & source on abc150/abc150_f
abc150 の問題それぞれのディレクトリを作成します。
それぞれのディレクトリの中には以下のファイルが生成されています。
-
main.py
: テンプレートから生成されたソースファイル -
testdata.yaml
: サンプルの入力、出力のデータ -
.task.yaml
: ac-deck 用の設定ファイル
問題をブラウザで開く
$ acd ./abc150/abc150_a browse
ソースを編集する
$ acd ./abc150/abc150_a edit
$EDITOR
環境変数で指定されたエディタを使用してソースファイルを開きます。
テストを実行する
テストを Docker もしくはローカル上で実行することが可能です。
Docker は必須ではありませんが、強く推奨しています。
Docker がインストールされていない場合はローカルでのテスト実行を試みます。
$ acd ./abc150/abc150_a test
Running test on Container mode
Case 1: AC
Case 2: AC
Case 3: AC
予め、テストの実行環境 (Docker image) を以下のようにしてインストールすることが可能です。
$ acd install python3
もしテストケースを足したい場合は testdata.yaml
を編集することで追加することができます。
コードを提出する
$ acd ./abc150/abc150_a submit
テストをスキップしたい場合は --skip-test
オプションを指定してください
$ acd ./abc150/abc150_a submit --skip-test
対応できていないこと
- C++ の boost や Python の scipy, numpy のライブラリ
- ユーザー独自のテンプレートを利用する機能
- いろんな言語の対応
まとめ
僕が考えた最強の AtCoder のツールを紹介しました。
もしよかったら使っていただけると嬉しいです。