#define LEFT_TOUCH IN_1 #define RIGHT_TOUCH IN_3 #define EYE IN_2 #define LEFT_MOTOR OUT_A #define RIGHT_MOTOR OUT_C #define BUMP_NONE 0 #define BUMP_LEFT 1 #define BUMP_RIGHT 2 int seedark; int newdark; int bumpside; int bumpswap; task main { start eyeball; Sensor(LEFT_TOUCH, IN_SWITCH); Sensor(RIGHT_TOUCH, IN_SWITCH); Fwd(LEFT_MOTOR + RIGHT_MOTOR, 4); bumpside = BUMP_NONE; bumpswap = 0; while (true) { if (LEFT_TOUCH == 1) { Off(LEFT_MOTOR + RIGHT_MOTOR); Sleep(100); Rev(LEFT_MOTOR + RIGHT_MOTOR, 4); Sleep(100); Off(LEFT_MOTOR + RIGHT_MOTOR); Rev(LEFT_MOTOR, 4); Sleep(40); Off(LEFT_MOTOR + RIGHT_MOTOR); Fwd(LEFT_MOTOR + RIGHT_MOTOR, 4); if (bumpside == BUMP_RIGHT) bumpswap += 1; else bumpswap = 0; bumpside = BUMP_LEFT; } else if (RIGHT_TOUCH == 1) { Off(LEFT_MOTOR + RIGHT_MOTOR); Sleep(100); Rev(LEFT_MOTOR + RIGHT_MOTOR, 4); Sleep(100); Off(LEFT_MOTOR + RIGHT_MOTOR); Rev(RIGHT_MOTOR, 4); Sleep(40); Off(LEFT_MOTOR + RIGHT_MOTOR); Fwd(LEFT_MOTOR + RIGHT_MOTOR, 4); if (bumpside == BUMP_LEFT) bumpswap += 1; else bumpswap = 0; bumpside = BUMP_RIGHT; } if (bumpswap == 5) { Off(LEFT_MOTOR + RIGHT_MOTOR); Rev(RIGHT_MOTOR, 4); Sleep(100); bumpswap = 0; Off(LEFT_MOTOR + RIGHT_MOTOR); Fwd(LEFT_MOTOR + RIGHT_MOTOR, 4); } } } task eyeball { seedark = 0; newdark = 0; Sensor(EYE, IN_LIGHT); while (true) { if (EYE < 40) { if (seedark == 0) { newdark = 1; seedark = 1; } else newdark = 0; } else { seedark = 0; newdark = 0; } if (newdark == 1) PlayNote(400, 100); } }