#define zennsin OnFwd(OUT_A + OUT_C);//MIGI GA 'A' #define kousin OnRev(OUT_A+ OUT_C); #define sasetu OnFwd(OUT_A); OnRev(OUT_C); #define usetu OnFwd(OUT_C); OnRev(OUT_A); #define torikomi OnFwd(OUT_B); #define hakidasi OnRev(OUT_B); #define teisi Off(OUT_A + OUT_C); #define THRESHOLD 45 int i sub trace() { while(true) { if(SENSOR_1 < THRESHOLD) { usetu; } else if(SENSOR_2 < THRESHOLD) { sasetu; } else { zennsin; } } } task main() { SetSensor(SENSOR_1, SENSOR_LIGHT);//migi SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono ClearMessage(); ClearTimer(0); kousin; Wait(); teisi; torikomi; Wait(); teisi; . zennsin;Wait(); usetu;Wait(120); zennsin;Wait(120); usetu;Wait(120); zennsin; until(SENSOR_2 < THRESHOLD); { trace(); } if(SENSOR_3 < THRESHOLD) { teisi; while(Timer(0) <= 10) { SendMessage(10); } } until(message() != 0); if(Message() == 1) { usetu;Wait(); zennsin;Wait(); teisi; hakidasi;Wait(); sasetu;Wait(); zennsin; until(SENSOR_2 < THRESHOLD); { trace(); if(SENSOR_3 <= THRESHOLD ) { i++; } if(i==2) { teisi; } } } if(Message() == 2) { trace; if(SENSOR_3 <= THRESHOLD ) { i++; } until(i=1); usetu;Wait(); zennsin;Wait(); teisi; hakidasi;Wait(); sasetu;Wait(); zennsin; until(SENSOR_2 < THRESHOLD); { trace(); if(SENSOR_3 <= THRESHOLD ) { i++; } if(i==3) { teisi; } } } if(Message() == 3) { trace; if(SENSOR_3 <= THRESHOLD ) { i++; } until(i=2); usetu;Wait(); zennsin;Wait(); teisi; hakidasi;Wait(); kousin;Wait(); sasetu;Wait(); zennsin; until(SENSOR_2 < THRESHOLD); { trace(); if(SENSOR_3 <= THRESHOLD ) { i++; } if(i==4) { teisi; } } } usetu;Wait(); trace;Wait(); sasetu;Wait();