カーソル移動で標準出力を書き換えるのがマイブームです。
ソースコード
sin_ary = (1..180).each.inject([]) do |ary, n| sin = (Math.sin(n * (Math::PI / 180)) * 100).to_i ary << ("*" * sin).ljust(100) end line = 20 begin loop do 180.times do |i| (0..line).each{ |j| puts sin_ary[i - j] } printf "\e[#{line + 1}A"; STDOUT.flush; sleep 0.01 end end rescue Interrupt exit 0 end
実行結果
line変数で行数を変更できます。
0 件のコメント:
コメントを投稿