FILE = "input.txt" options = [ (-1, -1), (-1, 0), (0, -1), (1, 1), (1, 0), (0, 1), (-1, 1), (1, -1) ] def main(): accessible = 0 grid = [list(line.strip()) for line in open(FILE)] for i in range(len(grid)): for j in range(len(grid[0])): if grid[i][j] != '@': continue nearby = [ (i + x, j + y) for (x, y) in options if 0 <= i+x < len(grid) and 0 <= j+y < len(grid[0]) ] nearbyRolls = [ grid[x][y] for (x, y) in nearby if grid[x][y] == '@' ] if len(nearbyRolls) < 4: accessible += 1 return accessible if __name__ == "__main__": print(main())