我有一个10x10网格的4x4开放和关闭方格(抱歉,不能发布图片< 10个重复点)
local Open = □
local Closed = ■
local grid = {
1 ={■,□,■,□,□,■,■,□,□,□},
2 ={■,□,□,□,■,■,■,■,■,■},
3 ={□,■,■,■,■,■,□,□,□,□},
4 ={■,□,■,■,■,□,□,□,□,■},
5 ={□,□,□,□,□,■,■,■,□,■},
6 ={□,□,□,□,□,■,■,■,□,■},
7 ={■,■,□,■,■,□,■,■,□,□},
8 ={□,□,■,■,□,■,■,□,□,■},
9 ={□,■,□,□,□,■,■,■,■,□},
10={□,□,□,■,■,□,■,■,□,□},
}
我有每个节点的Vector2位置,我使用了一些方法,但我似乎无法找到最有效的方法。我尝试循环遍历每一行并连接开放节点,这是有效的,但它没有尽可能高效。它需要通过X和Z坐标工作。
这是效率低下的伪代码:
GetCells = function(row1)
local continuum = {}
repeat
for i = 1, #grid[row1] do
local start = grid[row1][1]
local s = {}
if start == open then check right.
if right == open then
start = right
etc...
table.insert(s, start)
else
stop = true
end
end
table.insert(continuum, s)
end
until stop == true
return continuum
end
我还能继续这样做吗?