Free polyominoes enumeration: Difference between revisions

m
→‎{{header|Java}}: small changes
m (→‎{{header|Java}}: add parallel)
m (→‎{{header|Java}}: small changes)
Line 707:
<lang java>import java.awt.Point;
import java.util.*;
import static java.util.Arrays.asList;
import java.util.function.Function;
import static java.util.Comparator.comparing;
Line 712 ⟶ 713:
 
public class FreePolyominoesEnum {
 
static final List<Function<Point, Point>> transforms = new ArrayList<>();
 
Line 733:
static List<Point> translateToOrigin(List<Point> poly) {
final Point min = findMinima(poly);
return poly.stream().mapreplaceAll(p -> new Point(p.x - min.x, p.y - min.y));
return .collect(toList())poly;
}
 
Line 757:
 
static List<Point> neighborhoods(Point p) {
return Arrays.asList(new Point[]{(p.x - 1, p.y), new Point(p.x -+ 1, p.y),
new Point(p.x + 1, p.y - 1), new Point(p.x, p.y -+ 1),);
new Point(p.x, p.y + 1)});
}
 
static List<Point> concat(List<Point> lst, Point ppt) {
List<Point> r = lst.stream().map(ptnew -ArrayList<> new Point(pt)).collect(toList());
r.addaddAll(new Point(p)lst);
r.add(pt);
return r;
}
Line 790:
List<List<Point>> r = new ArrayList<>();
if (n == 1)
r.add(Arrays.asList(new Point[]{new Point(0, 0)}));
return r;
}
Anonymous user