diff --git a/src/main/java/model/update/NeighborManager.java b/src/main/java/model/update/NeighborManager.java new file mode 100644 index 0000000000000000000000000000000000000000..253304b89cbf3a2356b3d9a95acb9d96fa88448f --- /dev/null +++ b/src/main/java/model/update/NeighborManager.java @@ -0,0 +1,28 @@ +package model.update; + +import util.Position; + +import java.util.HashMap; +import java.util.*; + +public class NeighborManager { + private final Map<Position, List<Position>> neighbors = new HashMap<>(); + + public NeighborManager(int rowCount, int columnCount, Position[][] positions) { + for (int row = 0; row < rowCount; row++) { + for (int column = 0; column < columnCount; column++) { + List<Position> neighborList = new ArrayList<>(); + if (row > 0) neighborList.add(positions[row - 1][column]); + if (column > 0) neighborList.add(positions[row][column - 1]); + if (row < rowCount - 1) neighborList.add(positions[row + 1][column]); + if (column < columnCount - 1) neighborList.add(positions[row][column + 1]); + neighbors.put(positions[row][column], neighborList); + } + } + } + + public List<Position> getNeighbors(Position position) { + return neighbors.get(position); + } +} +