カテゴリー
NHC

TopCoderでCodeProcessor+TZTester+FileEdit

上位陣が結構使ってるプラグイン構成
FileEditは外部ファイルをソースとして自動で読み込むようにするもの。
Meadowなりなんなり好きなエディタが使えます。コピペの必要がありません。
TZTesterはテストコード自動生成プラグインで、
ローカルコンパイル&実行すると提示されているサンプルパターンを
全部一気にチェックしてくれます。
手順
Plugin紹介ページからTZTester.jar, FileEdit.jar, CodeProcessor.jarをダウンロード
Competition Arenaの「Options → Editor」で「Editor Preferences」を開く
Common ClassPathにBrowseボタンでTZTester.jar, FileEdit.jarを追加
Addボタンを押して以下のように入力してOKを押す
Name: CodeProcessor
EntryPoint: codeprocessor.EntryPoint
ClassPath: CodeProcessor.jarのパス
CodeProcessorを選択し、Configureを押して「CodeProcessor Configuration」を開く
「Editor EntryPoint」にfileedit.EntryPointと入力してConfigureを押す
「General」タブで「Enter directory to read/write problems to」にソースを置きたいディレクトリを記入
「Code Template」タブでTZTester用にTemplateを編集する。例えばC++ならば


class $CLASSNAME$ {
public:
$RC$ $METHODNAME$($METHODPARMS$) {
}
$TESTCODE$
};
// BEGIN CUT HERE
int main() {
$CLASSNAME$ ___test;
___test.run_test(-1);
}
// END CUT HERE

とする。「// {BEGIN|END} CUT HERE」で囲まれる部分は
CodeProcessor FileEditがSubmit時に削除してくれる。
Saveボタンを押したら今度は「Processor Class」に「tangentz.TZTester」と
記入して「Verify」を押す。3つのメソッドについて「found」と出たらOK。
だめだったらCompetition Arenaを再起動してからチェック。
使い方
新しい問題を開くとDefault Languageに基づいてスケルトンが出来上がる。
外部ファイルを編集・保存してからCompetition Arenaのほうで
Compileを押すと自動的にソースが読み込まれてコンパイルされる。
※ 問題を開いてから言語を変えた場合、前に選択していた言語のままのソースが
外部ファイルにエクスポートされてしまう模様なので注意。
外部ファイルをローカルコンパイルして実行するとTZTesterが生成したテストコードが
実行されて結果が出る。
かなり楽ちんになるでしょう。
ここまでやったらあとはコーディングの実力を・・・


C#用テンプレート
私が使っているC#用テンプレートです
– よく使うクラスライブラリのusing
– デバッガが起動しないようにする (Thanks unnonouno)


using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
public class $CLASSNAME$ {
public $RC$ $METHODNAME$($METHODPARMS$) {
}
$TESTCODE$// BEGIN CUT HERE
public static void Main() {
try {
$CLASSNAME$ ___test = new $CLASSNAME$();
___test.run_test(-1);
} catch(Exception e) {
//Console.WriteLine(e.StackTrace);
Console.WriteLine(e.ToString());
}
}
// END CUT HERE
}

「TopCoderでCodeProcessor+TZTester+FileEdit」への1件の返信

参考になります。早速使ってみようかと。
>ここまでやったらあとはコーディングの実力を・・・
これが一番難しい。
アルゴリズムが見えるプラグインとかないですかねorz