Итак, я строю тетрис. После создания массива данных, я пытаюсь реализовать гравитацию, проверяя каждую строку в массиве, если она «заполнена», а также возможность пустого пространства под ним. Тем не менее, это дает мне ошибку, которая предполагает, что что-то не определено. Я пробовал a для l oop и a для ... l oop, а также гуглил. Почему я получаю эту ошибку и как ее исправить?
const editor = document.getElementById("edit");
var data = [];
function array(x, text) {
var y = [];
for (var i = 0; i < x - 1; i++) {
y.push(text);
}
return y;
}
for (var i = 0; i < 20; i++) {
data.push(array(10, "b"));
}
function draw() {
var j;
var i;
var dataOut = data;
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++) {
if (data[i][j] == "a" && data[i + 1][j] == "b") {
if (i < data.length - 1) {
dataOut[i][j] = "b";
dataOut[i + 1][j] = "a";
}
}
}
}
data = dataOut;
console.log(data);
requestAnimationFrame(draw);
}
data[0][4] = "a";
requestAnimationFrame(draw);