@Override public boolean test(Node node) { V pos = (V) node.getState(); // for all seeds for (Seed s : board.getSeeds()) { // are we on the same (axis parallel) line ? if (V.sameLine(pos, s.pos)) { // are we far enough from it ? if (V.manhattan(pos, s.pos) < s.range) { return false; } } } return true; }