読者です 読者をやめる 読者になる 読者になる

雀巽の日記帳

雀巽が綴る日常の記録

Visual Studioで快適にTopCoderを戦う方法

概要

Visual Studio を使って C#TopCoder に参戦できるようにするまでの流れです。

次のような人は参考になるかも。

  • TopCoder やりたい
  • C++ の底知れぬ闇が怖い
  • Java なんか書きたくない
  • Python は実行速度が辛い

俺たちには C# があるじゃないか!!

環境

Visual StudioWindows でしか使えない。

ちなみにどうしても MacBook Air 上で動かしたかったので、VirtualBox 上の Windows 7Visual Studio を入れました。

インストール

公式ダウンロードページから Visual Studio Community をダウンロードし、インストーラを起動後、画面に従いインストール。

面倒くさいからと設定変更せずに全て入れたら、結構時間がかかったのでいらないものは外すべし。

Solarized Dark & Vim

カラースキームを leddt/visualstudio-colors-solarized を使って Solarized Dark に変更。

VsVim extension とやらを入れて Vim 風にした。Vim 以外のエディタは操作が難解で困る。

f:id:necojackarc:20150423043228p:plain

TopCoder

EclipseCoder みたいに超快適にしてくれるプラグインはないけど、以下の設定を行うと結構快適になる。

設定

  1. TopCoder.zip を落とし、C:\TopCoderに配置する
  2. Arena を開きログインする
  3. Option -> Editorを開き、以下の設定を Add し default と Startup にする
    • Name: ExampleBuilder
    • EntryPoint: codeprocessor.EntryPoint
    • ClassPath: C:\TopCoder\jars\CodeProcessor.jar;C:\TopCoder\jars\FileEdit.jar; C:\TopCoder\jars\ExampleBuilder.jar
  4. Configureを開き、 以下を設定する
    • Editor EntryPoint: fileedit.EntryPoint
    • Processor Class: tc_plugin.ExampleBuilder
  5. Verify をクリックし、エラーが起きなければConfigureを開き以下を設定する
    • Enter directory をC:\TopCoderに設定
    • "Write the problem description using HTML" にチェック
    • "Write the Problem Description to separate file" にチェック
      • File Extension: html
    • Code Template の C#これを貼り付ける
    • mainの最終行にSystem.Console.ReadKey();を追加する

これで設定終了。

コーディング

コーディングから提出までは次のような流れになる。

  1. C:\TopCoderにあるソリューションを開く
  2. Arena から問題を開く (C:\TopCoderにファイルが追加される)
  3. 追加されたファイルをソリューションに追加する
  4. Visual Studio で問題を解く (テストはF5の通常実行で動かせる)
  5. Arena でコンパイル、テスト、提出をする (ソースのコピペは不要)

プロジェクトへ生成されたソースコードを取り込んでしまえば、あとは非常に楽に作業が進めれる。

Arena で問題を開く、Visual Studio に取り込んで解く、Arena から提出する (Visual Studio からの取り出し不要)という流れになる。

感想

Visual Studio には Eclipse の EclipseCoder みたいな完成度の高いプラグインが用意されているわけではないが、十分に快適な作業環境になった。

というわけで、TopCoderC# でやるのとてもあり。 あとは Mac 上で動いてる Windows のキーボード操作が気持ち悪いのさえ直せば、何も問題はないかも。

Visual Studio で素敵 TopCoder ライフ!

参考