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)