isVisible = (grid, x, y) => {
const height = grid[y][x];
const treeIsHidden = isHidden(height);
return [
treesNorth(grid, x, y).some(treeIsHidden),
treesSouth(grid, x, y).some(treeIsHidden),
treesEast(grid, x, y).some(treeIsHidden),
treesWest(grid, x, y).some(treeIsHidden)
].some((v) => !v);
}