[[2004/A6/練習問題]]

このプログラムは、

明るいところで長調の曲(tomorrow)を演奏し、

暗いところへ入ると単調の曲(さそり座の女&heart;)を演奏する。

---------------------------------------------------------------------------------

       #define Do  523
       #define Re  587
       #define Mi  659
       #define Fa  698
       #define So  784
       #define La  880
       #define Shi  988
       #define Dou  1047
       #define Reu  1175
       #define Miu  1319
        task play_music()   // 音楽を演奏するタスク
       {
       while (true)
       {
       PlayTone(Mi,20); Wait(25);  // Wait の時間の方を少し長くして
       PlayTone(La,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
       PlayTone(Shi,20); Wait(25);  // 一つの音にならないようにしている
       PlayTone(Dou,10); Wait(50);
       PlayTone(Dou,10); Wait(50);
       PlayTone(Dou,10); Wait(50);
       PlayTone(Dou,10); Wait(75);
       PlayTone(Dou,20); Wait(25);
       PlayTone(Reu,20); Wait(25);
       PlayTone(Dou,20); Wait(25); 
       PlayTone(Reu,20); Wait(25);
       PlayTone(Dou,20); Wait(25);
       PlayTone(Shi,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Shi,20); Wait(25);
       Wait(200);
       }
       }
       task play_music1()   // 音楽を演奏するタスク
       {
       while (true)
       {
       PlayTone(Miu,20); Wait(25);  // Wait の時間の方を少し長くして
       PlayTone(Reu,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
       PlayTone(Dou,20); Wait(25);  // 一つの音にならないようにしている
       PlayTone(Miu,20); Wait(25);
       PlayTone(Reu,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Shi,20); Wait(25);
       PlayTone(Dou,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Shi,20); Wait(25);
       PlayTone(Mi,20); Wait(25);
       PlayTone(Mi,40); Wait(50);
       PlayTone(Fa,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Fa,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(So,20); Wait(25);
       PlayTone(Dou,20); Wait(25);
       PlayTone(Dou,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Shi,20); Wait(25);
       PlayTone(Dou,20); Wait(25);
       PlayTone(La,20); Wait(25);
       PlayTone(Miu,20); Wait(25);
       PlayTone(Reu,20); Wait(25);
       PlayTone(Reu,40); Wait(50);
       Wait(200);
       }
       }
       task main()
       }
       SetSensor(SENSOR_1, SENSOR_LIGHT);
       while(true)
       {
        if(SENSOR_1 < 40)
       {
       stop play_music ;     // 演奏を停止
       start play_music1 ;    // 演奏を開始
       OnFwd(OUT_A+OUT_B);   // 前進
       }
       if(SENSOR_1 > 40)
       {
       stop play_music1 ;     // 演奏を停止
       start play_music;     // 演奏
       Off(OUT_A+OUT_B);     // 動きも停止
       }
       }
       }
---------------------------------------------------------------------------------

苦労した点:if文やwhile文に苦労した。また、明るいところ、暗い所の判別にも苦労した。

工夫した点:ヤル気を無くさないために、完全に暗い曲にせず希望が見える歌にした。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS