【发布时间】:2020-10-24 02:36:43
【问题描述】:
假设我有一个二维数组,其中 0,0 在左上角,底部是 100,100。我在该数组中有一个点,例如 10,10。我想对距此点 1 的每个元素进行测试,因此是一个 3x3 框。如果我所有的测试都失败了,我想再移出一个矩形环,所以现在它将是一个 5x5 的盒子。但我想提高效率,所以我不想再次测试 3x3 盒子,只测试新盒子。我想过可能有一个像 up 这样的起始向量,然后顺时针以蛇状模式移动,直到我回来,然后递增并再次这样做,但我不确定这是否是最好的。我也想过只从左到右扫描,但如果第 9,9 行已经找到答案,我不想扫描第 8,8 行。
一个网格看起来像这样,起点在中间
8,8 9,8 10,8 11,8 12,8
8,9 9,9 10,9 11,9 12,9
8,10 9,10 10,10 11,10 12,10
8,11 9,11 10,11 11,11 12,11
8,12 9,12 10,12 11,12 12,12
这只是针对我正在开发的一个爱好游戏的封面检查算法。在我的示例中,我已经在 10,10 找到了掩护来源。现在我只想搜索它周围的所有方块并测试玩家是否能看到我,如果没有,那么我已经在我的网格上找到了一个很好的隐藏位置。
【问题讨论】: