[[2004/B1/28班練習問題]] task main(){ SetSensor(SENSOR_2, SENSOR_LIGHT); int a,b,time; a = 0; b = 0; time = 0; ClearTimer(0); while(Timer(0) < 32){ OnFwd(OUT_A); OnRev(OUT_C); if(SENSOR_2 > a){ a = SENSOR_2; time = Timer(0); } } Off(OUT_A + OUT_C);Wait(100); ClearTimer(0); while(Timer(0) < time){ OnFwd(OUT_A); OnRev(OUT_C); } Off(OUT_A + OUT_C);Wait(100); while(true){ OnFwd(OUT_A + OUT_C); if(SENSOR_2 < a && b == 0){ until(a <= SENSOR_2 || Timer(0) == 3){ OnRev(OUT_A); } Off(OUT_A + OUT_C); if(a <= SENSOR_2){ b = 0; a = SENSOR_2; }else{ b = 1; } if(b == 1){ until(a <= SENSOR_2 || Timer(0) == 3){ OnRev(OUT_C); OnFwd(OUT_A); } if(a <= SENSOR_2){ b - 1; a = SENSOR_2; }else{ Off(OUT_A + OUT_C); break; } } } if(SENSOR_2 < a && b == 1){ until(a <= SENSOR_2 || Timer(0) == 3){ OnRev(OUT_C); } Off(OUT_A + OUT_C); if(a <= SENSOR_2){ a = SENSOR_2; b = 1; }else{ b = 0; } if(b == 0){ until(a <= SENSOR_2 || Timer(0) == 3){ OnRev(OUT_A); OnFwd(OUT_C); } if(a <= SENSOR_2){ b = 0; a = SENSOR_2; }else{ Off(OUT_A + OUT_C); break; } } } } }