[[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文に苦労した。また、明るいところ、暗い所の判別にも苦労した。 工夫した点:ヤル気を無くさないために、完全に暗い曲にせず希望が見える歌にした。