- 追加された行はこの色です。
- 削除された行はこの色です。
[[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;
}
}
}
}
}