好的,所以我正在编写一个通过网格运行的程序,并找到房间。对于每个白色的房间,它都会用一种颜色填充它。只要这个点旁边的白色空间也是白色的,它就会继续填充颜色,直到空间被围起来。然后它继续扫描,直到找到一个新的白色房间。这是网格的外观示例: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