-3
因此,我正在处理一个角色在四个方向上移动的游戏,并且无论它移动到何处,都会将其坐标存储在500x700维度上的二维数组中。查找二维数组中的封闭区域
如果字符移动到每坐标(5,10)的发言权,则阵列[5] [10]将被设置为1,否则为0。
我想找到是一个矩形封闭的区域在这个数组中。我怎么会继续这样做呢?我不知道,我试过所有的试验和错误,但有人可以帮我吗?先谢谢你!
编辑****
所以我们可以说我有10×10的二维数组:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
我的问题是,当有1周围的“矩形”,我将如何搜索为了那个原因?
例如:
0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0
0 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1的,从[1] [1]应该被检测为区域42 6的矩形宽度开始和7在长度。
我试过的是用for循环遍历数组,然后每当有1时,搜索长度和高度,并确定是否存在于另一边,在位置“n”处的长度相同,远。这是否适合这样做?什么是更有效的解决方案?
请发表你已经尝试什么,为什么你认为它会失败。另外,你的意思是什么*矩形封闭区*? – Christian
这个数组是如何设置的?每一行都是一个子数组? – Bryan
@Bryan:这是一个2D数组。所以基本上你是对的。 – Stevantti