2
我有一个列表,其中每个元素代表地图中包含的所有平方米的整数的平均高度(一个数字=一平方米)。例如:使用洪水填充算法确定等高地图区域
map=[
[1,1,1,1],
[1,1,2,2],
[1,2,2,2]
] # where 1 and 2 are the average heights of those coordenates.
我试图实现一种方法,给定一个位置寻找他身边有相同高度的区域。我们称他们为'平面区域'。 我在洪水填充算法中找到了解决方案。但是,编写代码时遇到一些问题。我得到一个
RuntimeError: maximum recursion depth exceeded
我不知道我的问题在哪里。这是函数的代码:
def zona_igual_alcada(self,pos,zones=[],h=None):
x,y=pos
if h==None:
h=base_terreny.base_terreny.__getitem__(self,(x,y))
if base_terreny.base_terreny.__getitem__(self,(x,y))!=h:
return
if x in range(0,self.files) and y in range(0,self.columnes):
if base_terreny.base_terreny.__getitem__(self,(x,y))==h:
zones.append((x,y))
terreny.zona_igual_alcada(self,(x-1,y),zones,h)
terreny.zona_igual_alcada(self,(x+1,y),zones,h)
terreny.zona_igual_alcada(self,(x,y-1),zones,h)
terreny.zona_igual_alcada(self,(x,y+1),zones,h)
return set(zones)