やりたいのは以下のように更新されていく標準出力を作ること
コツはprint "\r"
。これをするとカーソル位置が行頭に戻り、一つの行を上書きしていくことができる。
話はこれで終わりなのだけどこれだけじゃつまらないので、これを使ったお遊びを2つ書きました。
プログレスバーっぽいものを表示する
def progress_bar
num = rand(20)
1.upto(num) do |i|
print "\r#{'=' * i}>"
sleep 0.2
puts " End" if i == num
end
end
おみくじ
def omikuji
kuji = %w(大吉 中吉 吉 末吉 凶 大凶)
num = rand(30)
0.upto(num) do |i|
print "\r#{kuji.shuffle[i % kuji.size]}"
sleep 0.1
end
end