def get_adjacent_cells(self, cell):
    x_coord = cell.x_coord
y_coord = cell.y_coord
for dx, dy in adjacency:
    if 0 <= x_coord + dx < max_x and 0 <= y_coord + dy < max_y:
        yield grid[x_coord + dx, y_coord + dy]
Pythonic и эффективный способ поиска соседних ячеек в сетке