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