«前の日記(2009年08月20日) 最新 次の日記(2009年08月30日)» 編集

ema log


2009年08月27日 [長年日記]

_ [CodeGolf][ruby] caddy.rb

面白そう.anarchy golf 用補助スクリプト.ただし,基本的に Linux/BSD 系での使用が前提の様子.

すげえ楽ちんで素晴らしい.なんか新しい言語を学んだりするのにも便利だろうなぁ.

インストール方法

基本的に README に書かれていますが

  1. ダウンロード&解凍する.以下,README に従って
  2. alias を作る.alias caddy='ruby /hogehoge/caddy.rb'
  3. caddy update で最新のゴルフ場情報を取得し,ユーザ名を設定する

でインストールできました.

使い方

以下では,Short Pi に ruby で回答する例を示します.

caddy short_pi.rb

などと実行すると,ファイル名から問題を推測してリストを提示してくれます.

short_pi corresponds to
 0: none of below
 1: Short Pi (1250)
 2: show the way (6666)
 3: slope lines (7272)
 4: Drop first line (7333)
 5: sort characters (7333)
Input 0-5 [1] ? : 1

というわけで,ここでは 1 を選択.自動でテストが始まり

Loading testcases of 'Short Pi'
Test #1... OK 0.072215

余分な空白や改行が取り除かれます.

Running squeezer... 11 => 10 (1/7/2)

Test #1... OK 0.123399

テストに通れば,サーバに投稿することも可能です.

Submit this 10B code as ema (Y/n) ? : y
Submitting... Success!
And it's new record!

Ruby に限らず,たとえば,php なら

caddy short_pi.php

と実行すると

Loading testcases of 'Short Pi'
Test #1... OK 0.085534

Running squeezer... 17 => 17 (1/15/1)

Test #1... OK 0.063777

Submit this 17B code as ema (Y/n) ? : y
Submitting... Success!
And it's new record!

と php5 が有れば,自動でそちらを実行してくれるようです!

Statistics を見ると,バイナリ:1,アスキー:15,記号:1 と,どうやらファイル末尾に余分な改行コードが残っているようです(PHP ですから残っても仕方がないですね).修正して再投稿しました.

%> caddy short_pi.php
Loading testcases of 'Short Pi'
Test #1... OK 0.090966

Running squeezer... 16 => 16 (0/15/1)

Test #1... OK 0.171221

Submit this 16B code as ema (Y/n) ? : y
Submitting... Success!
And it's new record!

超楽ちん!!

備考:Ubuntu で php5 コマンドを使う

なお,Ubuntu で php5 コマンドのインストールは,以下の通りのようです.

sudo apt-get install php5-cli

以上,最短がすぐに思いついたサンプルでした.e.rb とか hello world とかどうやっているんだろう?

なんか,文体が GIGAZINE っぽくてごめんなさい.