[[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()   // 音楽を演奏するタスク&heart;
    {
    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()   // 音楽を演奏するタスク&heart;
{
    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