【发布时间】:2013-11-29 22:45:38
【问题描述】:
我得到了以下地图
local Map = {
[1] = {
[1] = 'Sand',
[2] = 'Sand',
[3] = 'Sand'
},
[2] = {
[1] = 'Sand',
[2] = 'Sand',
[3] = 'Grass'
},
[3] = {
[1] = 'Rock',
[2] = 'Rock',
[3] = 'Grass'
},
}
上图:
S = Sand
G = Grass
R = Rock
S S R
S S R
S G G
并尝试创建一个函数,我提供一个点,它返回一个包含该类型的所有可能矩形的数组。
类似
function GetRectangles(X, Y)
local Type = Map[X][Y]
local Result = {}
-- Get all rectangles with same type and add to array
return Result
end
所以,当我调用 GetRectangles(1, 1) 时,它会返回一个包含以下矩形的数组
- 从 1, 1 开始到 2, 2 结束的矩形
- 从 1、1 开始到 1、3 结束的矩形
当我调用 GetRectangles(3, 3) 时,它会返回一个包含以下内容的数组
- 从 3、3 开始到 2、3 结束的矩形
我该怎么做?
【问题讨论】:
-
提供一个包含输入和预期输出的示例。
-
“矩形”是什么意思?
-
@YuHao 更新了问题。
-
如何用代码表示一个矩形?
-
@YuHao 类似 {Position = {1, 1}, Size = {2, 3}} 其中“Position”是左上角。
标签: algorithm lua multidimensional-array lua-table