擦除数组中的单元格
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>true
或 false
或其他一些州旗。
部分关闭的功能是运行从第一行到选中行,从选中项到行尾
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>');
我正在制作一个游戏,您可以在其中单击巧克力块,然后直接在巧克力块上方以及右侧的所有巧克力块都会消失。 (包括点击的那一块)
例如,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>true
或 false
或其他一些州旗。
部分关闭的功能是运行从第一行到选中行,从选中项到行尾
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>');