javascript - 我应该如何获得相同颜色的相邻 block ?

标签 javascript jquery algorithm

我正在尝试制作一个简单的配色游戏,我想找到一种方法来选择相同颜色的方 block 组。

这是 fiddle我正在处理,如果您运行它,您会发现当我尝试将鼠标悬停在游戏区域边缘的元素上时出现问题,告诉我它正在尝试使用 undefined variable

如果你在下面查看,在 parse_quad_tree() 函数中你会看到我处理了 undefined variable 的情况,但是因为它停止了,这意味着我在某个地方错了......

谢谢你的时间

最佳答案

您的二维数组实际上是嵌套数组。您只需要检查可能越界的数组级别:

var n = !!grid[x][y-1]?grid[x][y-1]:false;
var s = !!grid[x][y+1]?grid[x][y+1]:false;
var e = !!grid[x-1]?grid[x-1][y]:false;   // Instead of !!grid[x-1][y]
var w = !!grid[x+1]?grid[x+1][y]:false;   // Instead of !!grid[x+1][y]

换句话说,当你做 array[x][y] 时,javascript 首先检索 array[x],然后寻找索引 [y ] 在该检索到的数组中。在您的情况下,第一次查找未定义 (grid[x-1]),因此它无法查找 grid[x-1][y]。当第一步未定义时,您正在检查最后一步是否未定义。

演示:http://jsfiddle.net/jtbowden/qWktv/

此外,如果您在parse_quad_tree 的开头$(c).addClass('active'),您将能够突出显示单个 block ,并且您不会不必为每个邻居调用 `.addClass('active'),因为它会在递归开始时发生。

演示:http://jsfiddle.net/jtbowden/qWktv/1/

关于javascript - 我应该如何获得相同颜色的相邻 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436389/

相关文章:

javascript - 如何使用 JavaScript 清除字符串中的标签

javascript - 如何使用 PHP 从 html 下拉列表中选择选项值中的第三个元素

javascript - Android 中的 WebView 文本缩放问题

algorithm - 这个算法的复杂度(大O)是多少?

javascript - 过滤一次或过滤多次

javascript - 是否可以获取vuejs元素的DOM元素?

javascript - $ ("#ELEMENT_ID") vs $ ('div[id="ELEMENT_ID"]')

javascript - 不循环获取对象值

javascript - 在 Canvas 上绘制视频

Python 奇怪的返回问题