#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;} } }}