Ruby

コンソールでカウントダウン表示

コンソールでカウントダウンされる表示の方法。
単にprintでバックスペースのエスケープ文字を出力するのみ。

count.rb
print "1秒"
sleep 1
(2..9).each do |num|
  print "\b\b\b" + num.to_s + "秒"
  sleep 1
end

マルチバイトだとバックスペース文字が複数個必要なのかな?
そのへんまだ調べてない。

改善版

count2.rb
count = (200..500).to_a.sample
(1..count).to_a.reverse.each do |num|
  str = num.to_s + "秒"
  print str
  sleep 1
  print "\b" * str.bytesize
end