扫雷的Javascript递归

时间:2013-11-18 14:04:56

标签: javascript recursion minesweeper

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

0 个答案:

没有答案