プログラミングコンテスト等のテストジャッジプログラムを軽く作る

今月分の記事が少ないので、うるう日に書いてます。

WS000128.jpg

codeIQやyukicoder、Atcoder等のプログラミングコンテストでありがち。

解答者が作成したプログラムが正しいかどうか自動採点するアレを軽く作ります。

想定するフォルダ構造。

judge.rb
answer.rb(解答者プログラム)
test/
├index.txt
├in/
│├test00.txt
│├test01.txt
│└test02.txt
└out/
├test00.txt
├test01.txt
└test02.txt

index.txtの中身
in/test00.txt,out/test00.txt
in/test01.txt,out/test01.txt
in/test02.txt,out/test02.txt


judge.rbの中身
軽く作ったものなので、甘く見てください。


judge実行引数
ruby judge.rb 'ruby answer.rb'


kernel.openでファイルがオープンできる。
open(file,"w")のようにパラメータに"w"を付与すれば書き込み。

さらに、ファイル名に"|実行プログラム"と記述すると、そのプログラムの標準出力が得られる。
すごい。

Benchmarkを使ってみましたが、正しく測定できてるかどうかは調べてないです。





何でこんなプログラムを作ったかと言えば、yukicoderに問題出そうかな、と考えていたり。
問題とプログラムはできているのですが、最近他のwriterさんの事故が多いので、
もっと時間を掛けて推敲したほうが良さそうです。
問題文・撃墜ミス・撃ち漏らし・ネタ被り・・・

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Ruby

コメントの投稿

非公開コメント

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1253位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
219位
アクセスランキングを見る>>