更新:我认为这不重复,请查看它现在的作用http://808md.net/miner/?n=12
我正在研究一个扫雷克隆,一个函数检查点击的单元格是否为空,如果是,则以递归的方式检查周围的单元格,但我无法使它工作......
function checkCell (x,y) {
if ($("[x='"+x+"'][y='"+y+"']").hasClass("cellOpen")) return;
var c=-1; //exploded!
if (_bombs[y][x]!="1") c=countAround (x,y);
if (c>=0) {
_field[y][x]=c;
$("[x='"+x+"'] [y='"+y+"']").removeClass("cellClosed").addClass("cellOpen").css("color",_colors[c-1]);
if (c>0) $("[x='"+x+"'][y='"+y+"']").html(c);
}
if (c==0) {
//if cell is empty, check surrounding 8 cells
for (i=-1; i<=1; i++) {
for (j=-1; j<=1; j++) {
if (i!=0 || j!=0) {
if ((x-0+j)>=0 && (y-0+i)>=0 && (x-0+j)<_x && (y-0+i)<_y) {
//This is supposed to be a recursion??
checkCell (x-0+j,y-0+i);
}
}
}
}
}
return c;
}
我会添加检查以确保没有无限循环但是现在它只是左上角对齐,直到遇到非0单元格,而不是检查所有周围的单元格。