0

更新:我不认为这是重复的,请看看它现在做了什么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 单元格,而不是检查所有周围的单元格。

4

0 回答 0