2015年3月20日金曜日

【Ruby】 正弦波を出力する

正弦波を出力するだけのRubyの書き捨てスクリプト。

カーソル移動で標準出力を書き換えるのがマイブームです。


ソースコード

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 件のコメント:

コメントを投稿