部屋が明るいためセンサーがうまく働かなかったので、光に近付くと後退する
光から逃げるロボットにしました。
光が暗いときは前進でアニメ『トムとジェリー』に流れる音楽、光を感知すると
ドラクエに流れる音楽を出して後退し(逃げ)ます。
工夫として事前にtameshi13で『トムとジェリー』に流れる音楽を調整し、
またサブルーチンを使ってプログラムの簡略化を計ってみました
-[[tameshi13>2004/C5/tameshi13]]
/*tameshi12*/ //hikari de koutai
#define THRESHOLD 40
#define RUN_TIME 150
#define Do 523
#define Do1 554
#define Re 587
#define Re1 622
#define Mi 659
#define Fa 698
#define Fa1 740
#define So 784
#define So1 831
#define Ra 880
#define Ra1 932
#define Si 988
task winner()
{
while(true)
{
PlayTone(Mi,10);Wait(15);
PlayTone(Mi,10);Wait(15);
PlayTone(Mi,10);Wait(15);
PlayTone(Mi,20);Wait(30);
PlayTone(Re,10);Wait(15);
PlayTone(So,10);Wait(15);
PlayTone(Fa,40);Wait(50);
PlayTone(349,40); Wait(50);
}
}
task tom()
{
while(true)
{
PlayTone(So,10);Wait(30);
PlayTone(Mi,10);Wait(30);
PlayTone(So,10);Wait(15);
PlayTone(Ra,10);Wait(15);
PlayTone(So,10);Wait(45);
PlayTone(So,10);Wait(15);
PlayTone(Mi,10);Wait(15);
PlayTone(So,10);Wait(15);
PlayTone(Mi,10);Wait(30);
PlayTone(Do,10);Wait(30);
PlayTone(Do,10);Wait(15);
PlayTone(Do,10);Wait(15);
PlayTone(Do,10);Wait(15);
PlayTone(So,10);Wait(30);
PlayTone(Mi,10);Wait(30);
PlayTone(Do,10);Wait(15);
PlayTone(Do,10);Wait(15);
PlayTone(Ra,10);Wait(30);
PlayTone(So,10);Wait(15);
PlayTone(Mi,10);Wait(15);
PlayTone(Re,10);Wait(15);
PlayTone(1319,10);Wait(15);
PlayTone(1175,10);Wait(15);
PlayTone(Mi,10);Wait(15);
PlayTone(Re,10);Wait(30);
PlayTone(Do,10);Wait(30);
}}
sub go()
{ OnFwd(OUT_A); }
sub back()
{ OnRev(OUT_A); }
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(0);
while(Timer(0)<=RUN_TIME)
{ if(SENSOR_1<THRESHOLD)
{ go();
start tom;
else
{
back();
start winner;
}
}
}