public boolean match() { for (Iterator<Hit> iter = hits.iterator(); iter.hasNext(); ) { Hit h = iter.next(); if (robot.getTime() - h.time > 20) { iter.remove(); } } double avgBearing = 0; for (Hit h : hits) { avgBearing += h.heading; } avgBearing /= hits.size(); // todo (zhidkov): fix name double maxHz = 0; for (Hit h : hits) { if (abs(h.heading - avgBearing) > maxHz) { maxHz = abs(h.heading - avgBearing); } } return abs(avgBearing - maxHz) < LXXConstants.RADIANS_45 && hits.size() > 1; }