ちなみに

火曜日の空は僕を押しつぶした。

140文字でビールが降る

f:id:Sixeight:20140501185217g:plain

エンジニア各位が狂喜した Macのターミナルでビールが降る のコードですが、残念ながら 207文字 あって Twitter では拡散できません。

ruby -e 'C=`stty size`.scan(/\d+/)[1].to_i;S="\xf0\x9f\x8d\xba";a={};puts "\033[2J";loop{a[rand(C)]=0;a.each{|x,o|;a[x]+=1;print "\033[#{o};#{x}H \033[#{a[x]};#{x}H#{S} \033[0;0H"};$stdout.flush;sleep 0.01}'

不便に感じたためなんとか 140文字 に収めようと昼休みに削ってみましたが 156文字 までしか削れませんでした。

ruby -e'a={};$><<"\e[2J";loop{a[rand`stty size`[/\d*$/].to_i]=0;a.map{|x,o|$>.dup<<"\e[#{o};#{x}H \e[#{a[x]+=1};#{x}H\xf0\x9f\x8d\xba \e[0;0H"};sleep 0.01}'

もう駄目かと諦めていたところ id:aki017 のつぶやきが。

ジャスト 140 文字。すばらしい。

追記

落下しきったビールが消えないバグがあった。 \u{1f37a}の後ろにスペースが必要。 一文字オーバー…。

ruby -e'a={};$><<"\e[2J";loop{a[rand`tput cols`.to_i]=0;a.map{|x,o|$>.dup<<"\e[#{o};#{x}H \e[#{a[x]+=1};#{x}H\u{1f37a} \e[0;0H"};sleep 0.01}'

追記2

ruby -e'a={};$><<"\e[2J";loop{a[rand`tput cols`.to_i]=0;a.map{|x,o|$>.dup<<"\e[#{o};#{x}H \e[#{a[x]+=1};#{x}H\u{1f37a} \e[H"};sleep 0.01}'

138文字 …勝った。