消えるピアノのプログラム
叩いた鍵盤が消えるピアノです。
最後の一音をちょっと間を空けてから気持ちを込めて叩くとき、何をやってるんだろうなぁと笑いました。
ちなみに私はピアノを弾けません。
これは教育用プログラミング言語「ドリトル」で書いたプログラムです。
// 消えるピアノのプログラム
// プログラミング言語「ドリトル」
// (インストール版ドリトルで実行してください)
// 2020.06.04 蕪木 孝
拡大率 = 2。 // この値を変えると表示の大きさが変わる
// ----- 鍵盤の基本設定 -----
白鍵幅 = 16 * 拡大率。
白鍵高さ = 117 * 拡大率。
黒鍵幅 = 9 * 拡大率。
黒鍵高さ = 74 * 拡大率。
白鍵の隙間 = 2。
// ----- 25鍵盤の設定 -----
白鍵数 = 15。
左端の音 = 4。 // 1ド 2レ 3ミ 4ファ 5ソ 6ラ 0シ
音程 = -7。 // 音程は真ん中のドまでの音の距離(半音の数)。
// 初期値は左端白鍵からの半音の数。真ん中のドの音程は0。
真ん中のド = メロディ ! "ド" 作る。 // この音を基準にして他の音を作る
真ん中のド ! (楽器 ! 1 作る) 設定。 // 楽器はグランドピアノを指定
背景色 = 色 ! 25 25 25 作る。
画面 ! (背景色) 塗る。
カメ = タートル ! 作る 1 線の太さ。
// ----- 白鍵を作るための図形オブジェクトを作る -----
カメ ! 0 向き (白鍵幅) 歩く 90 右回り (白鍵高さ) 歩く。
カメ ! 90 右回り (白鍵幅) 歩く 閉じる。
白鍵 = カメ ! (白) 図形を作る 消える。
// ----- 黒鍵を作るための図形オブジェクトを作る -----
カメ ! 0 向き (黒鍵幅) 歩く 90 右回り (黒鍵高さ) 歩く。
カメ ! 90 右回り (黒鍵幅) 歩く 閉じる。
黒鍵 = カメ ! (黒) 図形を作る 消える。
// 鍵盤の左上隅の座標
鍵盤x = (白鍵幅 + 白鍵の隙間) * 白鍵数 / 2 * (-1)。
鍵盤y = 白鍵高さ / 2。
カメ ! 消える。
// ----- 消えるピアノを作る -----
黒鍵番号 = 0。 // 黒鍵の数を数えるための変数
「
| i | // i は繰り返した回数(1 ~ 白鍵数)
// --- 白鍵を作る ---
プログラム文字列 = "白鍵" + i + " = 白鍵 ! 作る。"。
プログラム文字列 ! 実行。
プログラム文字列 = "白鍵音" + i + " = 真ん中のド ! (" + 音程 + ") 音上げる。"。
プログラム文字列 ! 実行。
プログラム文字列 = "白鍵" + i + " : 動作 = 「白鍵音" + i
+ " ! 演奏。白鍵" + i + " ! 消える。」。"。
プログラム文字列 ! 実行。
白鍵x = 鍵盤x + (i - 1) * (白鍵幅 + 白鍵の隙間) + 白鍵の隙間 / 2。
プログラム文字列 = "白鍵" + i + " ! (白鍵x) (鍵盤y) 位置。"。
プログラム文字列 ! 実行。
// --- 黒鍵を作る ---
// 音番号は今作った白鍵の音を表す(1ド 2レ 3ミ 4ファ 5ソ 6ラ 0シ)
音番号 = (i + 左端の音 - 1) % 7。
(1 < i) ! なら // 左端は白鍵のため繰り返し処理の1回目で黒鍵作りはない
「
// 今作った白鍵がレ, ミ, ソ, ラ, シのどれかなら左側に黒鍵を作る
「どれか ! (音番号 == 2) (音番号 == 3) (音番号 == 5)
(音番号 == 6) (音番号 == 0) 本当」 ! なら
「
黒鍵番号 = 黒鍵番号 + 1。
プログラム文字列 = "黒鍵" + 黒鍵番号 + " = 黒鍵 ! 作る。"。
プログラム文字列 ! 実行。
プログラム文字列 = "黒鍵音" + 黒鍵番号 + " = 真ん中のド ! ("
+ 音程 + " - 1) 音上げる。"。
プログラム文字列 ! 実行。
プログラム文字列 = "黒鍵" + 黒鍵番号 + " : 動作 = 「黒鍵音" + 黒鍵番号
+ " ! 演奏。黒鍵" + 黒鍵番号 + " ! 消える。」。"。
プログラム文字列 ! 実行。
黒鍵x = 白鍵x - 黒鍵幅 / 2 - 白鍵の隙間 / 2。
プログラム文字列 = "黒鍵" + 黒鍵番号 + " ! (黒鍵x) (鍵盤y) 位置。"。
プログラム文字列 ! 実行。
」実行。
」実行。
// --- 次に作る白鍵の音程を設定する ---
「どれか ! (音番号 == 3) (音番号 == 0) 本当」 ! なら
「
// 次の白鍵は「ファ」「ド」のどちらかなので半音上げる
音程 = 音程 + 1。
」
そうでなければ「
// 次の白鍵は「レ」「ミ」「ソ」「ラ」「シ」のどれかなので全音上げる
音程 = 音程 + 2。
」実行。
」 ! (白鍵数) 繰り返す。
// 真ん中のドの音を確認するためのプログラム(コメントアウトを外して使う)
//白鍵 ! 現れる (白) 塗る。
//白鍵 : 動作 = 「真ん中のド ! 演奏」。
インストール版ドリトルで実行してください。
インストール版ドリトルは以下のサイトからダウンロードしてください。
https://dolittle.eplang.jp/download
パソコンのOSがWindowsなら「Windows用」をクリックするとダウンロードがはじまります。
ダウンロードしたら解凍してください。
解凍したフォルダに入っている dolittle.bat をダブルクリックするとドリトルが起動します。
プログラムを貼り付けて「実行!」をクリックすると消えるピアノが表示されます。
パソコンによっては音が鳴らない可能性があります。
楽器を基本の「グランドピアノ」に設定したので鳴るとは思いますが。
実行して演奏してくれたそこのあなた、えらい。
この記事が気に入ったらサポートをしてみませんか?