エンジニア各位が狂喜した 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 のつぶやきが。
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}'
— あっきー@ (@aki017f) 2014, 5月 1
ジャスト 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
@tomohi_ro \e[0;0Hなら\e[Hでいいような
— あっきー@ (@aki017f) 2014, 5月 1
@aki017f !
— Tomohiro Nishimura (@tomohi_ro) 2014, 5月 1
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文字
…勝った。