#define LIGHT_THRESHOLD 42 #define BACK_BUMPER SENSOR_1 #define FRONT_SENSOR SENSOR_3 #define RANDOM_MOVE_TIMER 0 #define RANDOM_MOVE_TIME 15 task main() { SetPower (OUT_A + OUT_C, OUT_FULL); SetSensor (BACK_BUMPER, SENSOR_TOUCH); SetSensor (FRONT_SENSOR, SENSOR_LIGHT); Rev (OUT_A + OUT_C); On (OUT_A + OUT_C); while (true) { if (FRONT_SENSOR >= LIGHT_THRESHOLD) { /* drive back */ Toggle(OUT_A+OUT_C); PlaySound (SOUND_CLICK); Wait (Random (75)+75); /* turn */ Toggle(OUT_A); Wait (Random (75)+75); /* stop turning, drive forward */ Toggle(OUT_C); PlaySound (SOUND_CLICK); ClearTimer (RANDOM_MOVE_TIMER); } else { if (Timer (RANDOM_MOVE_TIMER) > RANDOM_MOVE_TIME) { if (Random (100) < 20) { if (Random (100) < 50) { Toggle (OUT_C); Wait (Random (200)+75); Toggle (OUT_C); } else { Toggle (OUT_A); Wait (Random (250)+75); Toggle (OUT_A); } } ClearTimer (RANDOM_MOVE_TIMER); } } } } /* vim:ts=4:si:ai:sw=4 */