diff --git a/src/main/java/util/PositionUtil.java b/src/main/java/util/PositionUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..7b2b235996de9757fbe27dc7b664b1fcf9a7843b --- /dev/null +++ b/src/main/java/util/PositionUtil.java @@ -0,0 +1,30 @@ +package util; + +import java.util.ArrayList; +import java.util.List; + +public class PositionUtil { + public static List<Position> getPositionsAtManhattanDistance(Position fromPos, int distance, int rows, int cols) { + List<Position> positions = new ArrayList<>(); + int x0 = fromPos.x(); + int y0 = fromPos.y(); + + // Générer toutes les positions à une distance de Manhattan donnée + for (int dx = -distance; dx <= distance; dx++) { + int dy = distance - Math.abs(dx); + + int[] dyOptions = { dy, -dy }; + for (int deltaY : dyOptions) { + int x = x0 + dx; + int y = y0 + deltaY; + + // Vérifier si la position est dans les limites de la matrice + if (x >= 0 && x < rows && y >= 0 && y < cols) { + positions.add(new Position(x, y)); + } + } + } + + return positions; + } +} \ No newline at end of file