簡易アラーム(カウントダウン)
rubyでカウントダウンアラームを作ってみました。
- 実行時に「○○分」の数値を引数として渡す
- 10分前に1回、5分前に3回、時間になったら10回ビープ音が鳴る
ビープ音を鳴らすには?
Windows環境のため、rubyプログラム中で echo ^G コマンド(バッチファイルにビープ音を鳴らしたいのですが、やり方を知っている人はぜ... - Yahoo!知恵袋より)を使おうとしたところ、上手くいきませんでした。
^G が Ctrl+G として認識されないようです。
最終的には、http://yakinikunotare.boo.jp/orebase/index.php?Ruby%2Fbeep%B2%BB%A4%F2%CC%C4%A4%E9%A4%B9より、rubyのまま print "\a" で行けることがわかりました。
def countdown(min) sleep(min*60) end def beep print "\a" # ビープ音 end def set_alarm(min, frequency=1) countdown(min) frequency.times{beep} end unless ARGV.empty? minutes = ARGV[0].to_i # ARGV[0]はStringなので、数値に変換 unless minutes.zero? if minutes > 10 set_alarm(minutes-10) # 10分前のアラーム minutes = 10 end if minutes > 5 set_alarm(minutes-5, 3) # 5分前のアラーム minutes = 5 end set_alarm(minutes, 10) # 最終アラーム end end