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;     // 演奏
      }
      }
      }

苦労した点:if文やwhile文に苦労しました。また、明るいところ、暗い所の判別にも苦労しました。
あと、「さそり座の女」の続きが思い出せなくて、結局最初の部分がエンドレスにリピートしています。
工夫した点:ヤル気を無くさないために、完全に暗い曲にせず希望が見える歌に…。
周りの班の方々は、イキナリ怪しい曲が流れてさぞびっくりされたことでしょう。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-22 (火) 23:47:36