Dancing Kids, short code #4
久しぶりの空き時間にショートコーディング休憩。
いくつか表現手法を見直して、93Byteまで短くなりました。
これで、ようやく2桁かぁー。70Byte台は遠いなぁー。
いろいろやっている最中に知ったのですが、ヒアドキュメントは $>に渡せないのですね。
# OKなコード. puts <<EOS hoge EOS #=> hoge # NGなコード. $> <<EOS hoge EOS #=> uninitialized constant EOS (NameError)
そんなこんなで格闘した93Byteのコードを以下に載せておきます。
↓
LF改行で。
$><<"#{(/r/=~i=gets)?'\\':' '}('-')#{'/'if/l/=~i} #{i=~/r/?' ':"/"}|_|#{'\\'if/l/!~i} | |"
今回のポイントは以下の通り。
- なるべく変数は使わない。
- 大きく一つの文字列にしてその中で処理を行うように。
- /r/, /l/のマッチを調べるように。
- 正規表現の否定マッチは !~ 。