Here You can find my program at the moment. It's not a fixed program, of course. I'm testing it // LABIRYNTHE SOLVER 1 int sem; int lastlevel; // To store the previous level int qdixdegres; task send_signal() { while(true) {SendMessage(0); Wait(10);} } task check_signal() { while(true) { lastlevel = SENSOR_2; if(SENSOR_2 > lastlevel + 120) { until (sem == 0); sem = 1 ; OnFwd (OUT_C); OnRev (OUT_A); Wait(qdixdegres); OnFwd(OUT_A+OUT_C);} // A definir sem = 0; } } task rien_a_droite() { while (true) {Wait (250); if (SENSOR_3 == 0) { until (sem == 0); sem = 1; Wait (70); OnFwd (OUT_A); OnRev (OUT_C); Wait(qdixdegres); OnFwd(OUT_A+OUT_C);} // A definir laisser un delai pour que le senseur se remette en ==1 sem = 0; } } task main () { qdixdegres = 205; sem = 0 ; SetSensorType(SENSOR_2, SENSOR_TYPE_LIGHT); SetSensorMode(SENSOR_2, SENSOR_MODE_RAW); SetSensorType(SENSOR_1, SENSOR_TYPE_TOUCH); SetSensorMode(SENSOR_1, SENSOR_MODE_BOOL); SetSensorType(SENSOR_3, SENSOR_TYPE_TOUCH); SetSensorMode(SENSOR_3, SENSOR_MODE_BOOL); start send_signal; start check_signal; start rien_a_droite; OnFwd (OUT_A+OUT_C); }