擦除数组中的单元格

Erasing cells in an array

我正在制作一个游戏,您可以在其中单击巧克力块,然后直接在巧克力块上方以及右侧的所有巧克力块都会消失。 (包括点击的那一块)

例如,this是点击一块时应该发生的情况。

(注意:绿色棋子适用不同的规则,如果你点击它,你就输了,游戏重新开始。)

我的问题是,每当点击一块时,我无法弄清楚如何根据前面所述的规则将方块(点击的方块除外)变为 'disappear'。

这是我的伪代码,说明如何删除其他部分:

我已经正确实施了第一步,但我似乎无法执行第二步。

我应该如何删除图像中显示的单元格?

这是第一步的框架:

 cellClick = function (cell) {
  var a,
    //get (x,y) coordinates from array tableData
    x = cell.pos.x,
    y = cell.pos.y;
  //make all cells above, to the right, and inbetween, fade appropriate cells
       for (a = 0; a < tableData.length; a++) {
        //check each element to see what it's (x,y) is compared to click cell, then delete.

       }

Here 是我的完整代码。

我建议使用包含单元格状态的数组。

在这种情况下,我使用 X 和 space </code>,在实际项目中我会使用 <code>truefalse 或其他一些州旗。

部分关闭的功能是运行从第一行到选中行,从选中项到行尾

aswer是ES6的,因为给定的link用的是ES6.

function setOff(y, x) {
    var i, j = 0;

    while (j <= y) {
        i = x;
        while (i < table[j].length) {
            table[j][i] = ' ';
            i++;
        }
        j++;
    }
}

var table = Array.apply(null, { length: 6 }).map(() =>
    Array(8).fill('X')
);

setOff(2, 6);

document.write('<pre>' + table.map(a => a.join('')).join('\n') + '</pre>');