ドリトルのメソッドを定義してみる
オブジェクト指向プログラミングの特徴に、メソッドというものがある。http://e-words.jp/w/E383A1E382BDE38383E38389.html
メソッドとは、簡単に言うとオブジェクトが実行できる仕事のことだ。この仕事は、プログラムを書くことでどんどん機能を増やすことができる。
ドリトルでのメソッドの書き方はこうだ。
オブジェクト名:メソッド名=「|メソッドの引数|メソッドのプログラム」。
このメソッドを呼び出す時はこう書く。
オブジェクト名! 引数 メソッド名
ということで、今日は昨日のプログラムをさらにバージョンアップして、12音階を生成する部分を作品オブジェクトのメソッド(メソッド名は作曲)として定義してみる。
このメソッドへのパラメータはこういうように決める。
n ・・・・ 作成する音程の幅
m ・・・・ 作成する音符の数
作曲メソッドの呼び出し方
作品! 音程の幅 音符の数 作曲
このメソッドを使って、1部、2部、3部の3部構成の曲をドリトルに作曲させてみる。そして、1部をチェロ、2部をピアノ、3部をバスフルートで演奏させる。
あまりすばらしい演奏なので、最後に拍手も付けてみた。
//--------- ここから ----------
音列=配列!作る ""入れる ""入れる ""入れる。
音1=メロディ!作る "ド1"追加。
音2=メロディ!作る "ド2"追加。
音3=メロディ!作る "ド4"追加。
拍手=メロディ!作る "ド1~~~~~~~~~~~~~~~~"追加。
作品:作曲=「|n m| 作品=メロディ!作る。「
音列!1 (音1! (random(n)-n/2) 音上げる) 上書き。
音列!2 (音2! (random(n)-n/2) 音上げる) 上書き。
音列!3 (音3! (random(n)-n/2) 音上げる) 上書き。
作品!(音列!(random(3)) 見る) 追加
」! (m) 繰り返す」。
piano=1。 cello=42。 flute=73。Applause=126。
Part1=作品! 30 100 作曲。奏者=楽器! (cello) 作る(Part1)設定 演奏 待つ。
part2=作品! 80 200 作曲。奏者=楽器! (piano) 作る(Part2)設定 演奏 待つ。
part2=作品! 20 100 作曲。奏者=楽器! (flute) 作る(Part2)設定 演奏 待つ。
聴衆=楽器! (Applause) 作る(拍手)設定 演奏。
//--------- ここまで ----------
そして実行!ボタンだ。
ちょっと本格的になってきた!と思いませんか。
0 Comments:
コメントを投稿
<< Home