private List<Cell> neighbors(Cell [][] cells, Cell cell) {
    List<Cell> neighbors = new ArrayList<Cell>();

    if (cell.getxCoordinate() + 1 < Config.X_AMOUNT_CELLS
        && cells[cell.getxCoordinate() + 1][cell.getyCoordinate()].getBall() == null) {
      neighbors.add(cells[cell.getxCoordinate() + 1][cell.getyCoordinate()]);
    }
    if (cell.getxCoordinate() - 1 >= 0 && cells[cell.getxCoordinate() - 1][cell.getyCoordinate()].getBall() == null) {
      neighbors.add(cells[cell.getxCoordinate() - 1][cell.getyCoordinate()]);
    }
    if (cell.getyCoordinate() + 1 < Config.Y_AMOUNT_CELLS
        && cells[cell.getxCoordinate()][cell.getyCoordinate() + 1].getBall() == null) {
      neighbors.add(cells[cell.getxCoordinate()][cell.getyCoordinate() + 1]);
    }
    if (cell.getyCoordinate() - 1 >= 0 && cells[cell.getxCoordinate()][cell.getyCoordinate() - 1].getBall() == null) {
      neighbors.add(cells[cell.getxCoordinate()][cell.getyCoordinate() - 1]);
    }

    return neighbors;
  }