その名も「失敗は死(Failure is Death)」です。たぶん英語としては間違えてますが、カッコイイのでこのままで。
機能
AtCoderのコードテストをちょっと強くしたものになります。複数のテストケースを同時に試せるので、コードの書き換えをしたあとの検証などで利用できます。A問題でいちいち準備したりするのが億劫だったのでこのような形式になりました。
たとえばこの問題の場合は次のような感じで試すことができます(この問題が結構すき)。
execを押すと、以下のようにテストケースそれぞれの出力を表示します。
内部としては
- コードとテストケースを受け取る
- 外部コマンド(sedなりRubyなり)を呼び出す
- 実行結果を表示する
となっているので、たとえばRubyでジャッジしたい場合はあらかじめRubyを入れる必要があります。
開発の流れ
今回はRustを使って作ってみました。GUIの開発だったので、Gtkを使いました。
作ってて思ったことをいくつか。まず、入力フォーム一つ作るのに非常に苦労しました。まず、どれがフォームを指しているのかを調べるところから始まりました。結論としてはEntryが1行のみの入力フォーム、TextViewが複数行のフォームのようです。ただし、これらはundoすらできないので、SourceViewというところのViewを使うのをおすすめします。
また、テキストボックスのサイズの設定が未だにわかりません。どうすればいいのやら…
参考資料
- プログラミング言語Rustのススメ - Qiita
- まえがき - The Rust Programming Language Rustの公式ドキュメントの日本語訳です。結構長くてまだ全部は読んでません。
- RustでGUI 〜gtk編〜 - Qiita ここを雛形として作り始めました。
- gtk - Rust めっっっっっっちゃくちゃ読み込みました。