【发布时间】:2016-04-05 01:31:33
【问题描述】:
所以,我正在编写一个 Bejeweled 克隆,我的洪水填充功能出现错误。我有一个 15 x 15 不同颜色的珠宝矩阵,我尝试计算填充的瓷砖数量。
函数在这里:
function count(x, y, color) {
if(matrix[x] && matrix[x][y]) {
if(matrix[x][y].color != color)
return;
cnt++;
count(x, y+1, color);
count(x, y-1, color);
count(x-1, y, color);
count(x+1, y, color);
console.log(cnt);
}
}
怎么了?
【问题讨论】:
-
有趣。我猜我会说你一遍又一遍地计算相同的单元格......首先是右侧的一个,然后 its 左侧的一个,然后是
GO TO start,依此类推。 -
你不会重新着色你访问过的单元格,你会陷入无限递归。
-
@Chara 边界由 if 条件中的前两个逻辑表达式检查
标签: javascript algorithm recursion flood-fill