前書き
まだコードを書くことにあまり慣れていないので
とりあえず何かを作ってみようと思いました。
自分は音楽が好きなのでメトロノーム的なものを作ってみました。
具体的にどんなものかというと、
自分が欲しいBPMを入力すると ※BPM…Beats Per Minuteの略。
●がその速度で点滅するというものです。 1分間に何回のリズムが刻まれているかを示す。
コード
class Metronome { //任意のタイミングで終了させるためのもの static bool End = false; static void Main() { Console.WriteLine("BPMを入力してください。"); //BPMの入力 var BPM = int.Parse(Console.ReadLine()); Console.WriteLine(""); Console.WriteLine("設定したBPMで●が時を刻みます。"); Console.WriteLine("終了したい場合はEnterキーを押してください。"); Console.WriteLine(""); //3秒のカウントダウン for (int timer = 3; 1 <= timer; timer--) { Console.CursorLeft = 0; Console.Write("開始まで{0}秒", timer); Thread.Sleep(1000); } Console.CursorLeft = 0; Console.WriteLine("開始まで0秒"); Console.WriteLine(""); //処理の予約(実行可能な時に発動) ThreadPool.QueueUserWorkItem(new WaitCallback(PushKey)); //キー入力があるまで設定BPMで点滅 while (true) { Console.CursorLeft = 0; Console.Write("●"); Thread.Sleep(6000 / BPM); Console.CursorLeft = 0; Console.Write(" "); Thread.Sleep(54000 / BPM); if (End) { break; } } } //キー入力でEndをtrueに static void PushKey(object State) { ConsoleKeyInfo keyInfo = Console.ReadKey(true); End = true; } }
後書き
内容的にはシンプルですが、
一つ自分が作りたいものを作れたので
良かったなと思います。
次回も何か作るなら、
もう少し凝ったものを作りたいなと思います。