【发布时间】:2020-04-18 04:14:50
【问题描述】:
我正在学习 JavaScript,为此我想制作一个俄罗斯方块游戏。 到现在为止,我得到了很多功能,但被 clearRow() (clear line)问题卡住了。
我的代码工作如下。我检查了 gameBoardSquared 2D 数组的每一行。如果一行中的所有块都是蓝色的,则应删除该行。
这是我的代码:
function clearRow(){
for(var rows = 0; rows < gameBoardSquared.length; rows++){
var isFullLine = false;
if(gameBoardSquared.every(k => k[rows].squareColor == "blue")){
isFullLine = true;
console.log("fds");
}
if(isFullLine){
//here I would like to iterate trough all the elements, that are true in the upper if statement (if(gameBoardSquared.every...)
}
}
}
}
但不是这个。 如果我可以将 .splice 插入到 if(arr.every()) 条件中,我将不胜感激,而不是只删除一个 tetromino。
编辑: 我正在迭代槽列,因为整个游戏板是在画布上制作的。那里的轴被还原了。
【问题讨论】:
-
看起来您混淆了行和单元格。
gameBoardSquared.every(k和for(var rows = 0; rows < gameBoardSquared.length; rows++){似乎在应该是列时遍历行 -
哦,我现在知道你的意思了。我想再次遍历行以捕获所有填充的行并删除它们。这只是我在尝试寻找解决方案时留下的东西。
标签: javascript arrays multidimensional-array tetris