- 追加された行はこの色です。
- 削除された行はこの色です。
[[2005/C5/あきひろ]]
#define spin OnFwd(OUT_A);OnRev(OUT_C);Wait(30);
#define go_straight OnFwd(OUT_A+OUT_C);
#define go_back OnRev(OUT_A+OUT_C);
int light_max1=0;
int light_max3=0;
int RUN_TIME=800;
task main()
{ SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<RUN_TIME)
{ if((SENSOR_1>light_max1)||(SENSOR_3>light_max3)){
spin;
light_max1=SENSOR_1;PlayTone(400,5);
light_max3=SENSOR_3;PlayTone(600,5);}
}
while(FastTimer(0)>=RUN_TIME)
{if((SENSOR_1<light_max1)&&(SENSOR_3<light_max3))
{spin;}
if(SENSOR_1>=light_max1-5)
{go_straight;}
if(SENSOR_3>=light_max3-5)
{go_back;}}
}
ーーーーーーーーー
#define go_straight OnFwd(OUT_A+OUT_C);
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);
#define RUN_TIME 300
int light_R=0;
int light_L=0;
task main()
{ SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearTimer(0);
while(true){ while(FastTimer(0)<RUN_TIME)
{turn_right;
if(SENSOR_1>light_L)
{light_L=SENSOR_1;PlayTone(220,1);}
if(SENSOR_3>light_R){light_R=SENSOR_3;
PlayTone(600,1);}
}
if((SENSOR_1>=light_L)||(SENSOR_3>=light_R))
{go_straight;}
if((SENSOR_1<light_L)&&(SENSOR_3<light_R))
{if(SENSOR_1>SENSOR_3){turn_left;}
if(SENSOR_3>SENSOR_1){turn_right;}
}
}}