4
好吧,我正在寫一個程序,將通過網格運行,並找到商會。對於每個白色的小室,它都會填充一種顏色。只要這個點旁邊的白色空間也是白色的,它就會繼續填充顏色,直到空間被關閉。然後它繼續掃描,直到找到一個新的白色房間。這裏是網格的一個例子:http://imgur.com/uDzzq。這裏是到目前爲止的代碼...蟒蛇 - (家庭)需要幫助我的網格遞歸功能
x = 0
y = 0
if cave[row][col] != AIR:
return
if cave[row][col] == WATER:
return
if cave[row][col] == AIR:
cave[row][col] = WATER
grid.fill_cell(row, col, color)
if row <= length: #RIGHT
fill(cave, row+1, col, color)
x+=1
if col <= length: #DOWN
fill(cave, row, col+1, color)
y+=1
if row >= 0: #LEFT
fill(cave, row-1, col, color)
x-=1
if col >= 0: #UP
fill(cave, row, col-1, color)
y-=1
這裏是它被調用
for row in range(length) :
for col in range(length):
if(cave[row][col]):
if(cave[row][col]) == AIR:
color = grid.get_cur_color()
fill(cave, row, col, color)
chambers += 1
grid.get_next_color()
我遇到的問題是,這僅適用於非常簡單的洞穴。當我嘗試運行沒有與外部接壤的牆的東西時,我會遇到錯誤。任何人都可以發現我的問題在哪裏?這是比較複雜的洞穴的例子,它應該如何看到底:http://imgur.com/41ptc
好的謝謝你的幫助,它的填充更多一點,但仍然無法正常工作100%我編輯了代碼以反映更改。 – user1758231