update mart
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / behaviours / WandererBehaviour.java
index ec16941..f66bb62 100644 (file)
@@ -1,23 +1,19 @@
 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;
        }
 
@@ -28,25 +24,17 @@ public class WandererBehaviour implements Behavior {
 
        @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