【发布时间】:2020-03-21 04:36:56
【问题描述】:
对不起我的英语。
我有一个问题,下一步是什么:
例如,我有一张地图:
var map =
[[0,1,1,0,0,0,0,0,0,0],
[0,1,0,1,0,1,1,0,0,0],
[0,1,0,0,1,0,0,1,0,0],
[0,1,0,0,0,0,0,0,1,0],
[0,0,1,0,0,0,0,1,0,0],
[0,0,0,1,0,0,0,1,1,0],
[0,0,1,0,0,0,1,0,0,0],
[0,1,0,0,0,0,0,1,0,0],
[1,0,0,1,1,1,0,1,0,0],
[0,1,1,0,0,1,1,1,0,0]];
其中包含一系列数字 0 和 1(例如)。我需要填写此地图上所有封闭的方框,例如使用数字 2。
例子:
var map =
[[0,1,1,0,0,0,0,0,0,0],
[0,1,2,1,0,1,1,0,0,0],
[0,1,2,2,1,2,2,1,0,0],
[0,1,2,2,2,2,2,2,1,0],
[0,0,1,2,2,2,2,1,0,0],
[0,0,0,1,2,2,2,1,1,0],
[0,0,1,2,2,2,1,0,0,0],
[0,1,2,2,2,2,2,1,0,0],
[1,2,2,1,1,1,2,1,0,0],
[0,1,1,0,0,1,1,1,0,0]];
考虑到:
- 正如本例中只有一个闭合图形,也可以有多个闭合图形
- 不会考虑地图的侧面
- 如果有任何用处,数字 1(将是实心)将 随着时间的推移生成,所以地图会不断变化 (就像数组中的笔划)
我找到了一个名为“Flood Fill”的方法,但是它取决于一个起点,在这种情况下它没有起点。这个想法是代码负责找到封闭区域并自动填充它们。
【问题讨论】:
标签: javascript dictionary autofill flood-fill