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);
    }
}