package nl.ru.des.behaviours;
-import lejos.hardware.Sound;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
-import lejos.robotics.Color;
+import lejos.robotics.SampleProvider;
import lejos.robotics.subsumption.Behavior;
import nl.ru.des.bluetooth.ColorMemory;
-import nl.ru.des.sensors.ColorSensor;
-public class WandererBehaviour implements Behavior {
+public class WandererBehaviour extends ReactiveBehaviour implements Behavior {
private EV3LargeRegulatedMotor leftMotor, rightMotor;
- private ColorSensor colorSensor;
- private boolean suppressed;
private ColorMemory cm;
- public WandererBehaviour(ColorSensor colorSensor, EV3LargeRegulatedMotor leftMotor,
+ public WandererBehaviour(SampleProvider color, EV3LargeRegulatedMotor leftMotor,
EV3LargeRegulatedMotor rightMotor, ColorMemory cm) {
+ super(color);
this.leftMotor = leftMotor;
this.rightMotor = rightMotor;
- this.colorSensor = colorSensor;
this.cm = cm;
}
@Override
public void action() {
- suppressed = false;
- leftMotor.setSpeed(300);
- rightMotor.setSpeed(300);
+ super.action();
leftMotor.forward();
rightMotor.forward();
while (!suppressed) {
- int current = colorSensor.getCurrentColor();
- if (current == Color.YELLOW || current == Color.BLUE || current == Color.RED) {
- Sound.beep();
- cm.addColor(current);
+ super.fetchSample();
+ if (ColorMemory.COLORSTOFIND.contains((int)samples[0])) {
+ cm.addColor((int)samples[0]);
}
Thread.yield();
}
leftMotor.stop(true);
rightMotor.stop(true);
}
-
- @Override
- public void suppress() {
- suppressed = true;
- }
-}
+}
\ No newline at end of file