部屋が明るいためセンサーがうまく働かなかったので、光に近付くと後退する 光から逃げるロボットにしました。 光が暗いときは前進でアニメ『トムとジェリー』に流れる音楽、光を感知すると ドラクエに流れる音楽を出して後退し(逃げ)ます。 工夫として事前に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; } } }