package nl.ru.des.sensors;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
import lejos.hardware.sensor.EV3GyroSensor;
import lejos.robotics.SampleProvider;
private static final float DANGER_DISTANCE_BACK = 0.035f;
private static final float DANGER_LIGHT = 0.45f;
+ private Set<Integer> collectedColors;
+
//Local sensors
private EV3GyroSensor gyroSensor;
private SampleProvider ultra, leftLight, rightLight, gyro;
leftLightTime = System.currentTimeMillis();
rightLightTime = System.currentTimeMillis();
gyroTime = System.currentTimeMillis();
+
+ collectedColors = new HashSet<Integer>();
}
//Local sensors
}
//Remote sensors
+ public void resetColors(){
+ collectedColors.clear();
+ }
+
public boolean collected(int[] colors){
- return false;
+ return collectedColors.containsAll(Arrays.asList(colors));
}
public int color(){
switch(RemoteSensors.RemoteSensorEnum.values()[Integer.valueOf(Character.toString(m.charAt(0)))]){
case COLOR:
color = Integer.valueOf(s);
+ collectedColors.add(color);
break;
case LEFT:
leftTouch = Integer.valueOf(s)==1;