Gaming Life

一日24時間、ゲームは10時間

ほんの少しだけラクに、C++でAtCoderに参加するバッチファイル作った

先々週のABCからAtCoderを始めた。

前回参加時はたまたまTwitterを見ていた時にコンテスト開催中だということに気づき、折角だしやるか、と衝動的に参加したため、VS2017で書いて、動くかどうかは実際提出してみて試す、なんて非効率な事をしていた。

折角やるならちゃんと環境整えて、ローカルでもテストできるようにしたいよなー、ということで比較的簡単に環境構築できるバッチファイルを作った。

※と言ってもただディレクトリ作るだけの奴だけど......

前準備

torus711.hatenablog.com

このサイトを参考に最新のgcc導入まで済ます。

エディタには今回はVSCodeを採用。codeコマンドを叩いてVSCodeが起動すればOK。

バッチファイル作成

適当なフォルダでメモ帳を開いて、名前を "atcoder-init.bat"とする。

以下をコピペしてbatファイルに貼り付ける。(後から編集したい時は右クリック→編集を選択。左クリックするとバッチファイルが実行されてしまう)

cd /d [保存したいディレクトリ、自分で決める]
mkdir %1
cd %1
mkdir A
mkdir B
mkdir C
mkdir D
cd A
type nul > input.txt
type nul > Main.cpp
cd ..
cd B
type nul > input.txt
type nul > Main.cpp
cd ..
cd C
type nul > input.txt
type nul > Main.cpp
cd ..
cd D
type nul > input.txt
type nul > Main.cpp
cd ..

PATHを通す

(Windows10なら)スタートメニューで「環境変数」と入力すれば「環境変数を編集」メニューが出てくるのでそれを選択。(Win10、なんでコントロールパネル深いところに隠したんだろうか……)

出てきたウインドウの上側、ユーザー環境変数で、Pathを選択してから編集をクリック。

新規ボタンをクリックし、先程バッチファイルを保存したパスをコピペして保存する。

使い方

コマンドプロンプト(Not PowerShell)で

> atcoder-init [引数1]

を叩くと引数1に選択したディレクトリ以下にA~D問題を解くための作業ディレクトリが作成される。

A問題を解きたい時は

> code A

を入れればVSCodeが起動し、標準入力用のinput.txtと実際にコードを書くMain.cppを編集できる。input.txtには問題ページからサンプル入力をコピペしてはっつければいい。

Main.cppを編集し終えたら

> g++ A/Main.cpp

コンパイルコンパイルが通ったら、

> a.exe < A/input.txt

で実行する。

まとめ

ごくごく単純なバッチファイルだが、以前よりは確実にラクにテストできるようになった。世の中にはサンプル入力をスクレイピングして自動で拾ってくるようなのもあるらしいが、そんな技術はないので、仕方ない。

もっとラクなのがあったら教えてほしい。

水色までは頑張りたいなあ。