У меня есть этот массив, который я передаю в функцию, которая должна повернуть массив на 90 градусов и вернуть результат.Затем я хочу проверить, не сталкивается ли новый массив с другими объектами на холсте.
let newArray = [
[0,0,1],
[1,1,1],
[0,0,0]
];
let test = rotate(newArray);
if ( collision(test) ){
draw(newArray);
} else {
draw(test);
}
Вот проблема.Я думаю, что rotate () изменяет переменную newArray, поэтому не имеет значения, что вычисляет оператор if, функция draw () всегда будет делать то же самое.
Я хочу выбрать массив дляНарисуйте после проверки, если повернутая матрица сталкивается с другими вещами.
function rotate(matrix) {
matrix = matrix.reverse();
for (var i = 0; i < matrix.length; i++) {
for (var j = 0; j < i; j++) {
var temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
return matrix
}
function collision(mat){
let collision = false;
for ( let i = 0; i < mat.length; i++){
for ( let j = 0; j < mat.length; j++){
if (mat[i][j] == 1){
let test = ctx.getImageData(x + 10*j +10, y + 10*i, 1, 1);
if (test.data != "255,255,255,255" && test.data != "0,0,0,0"){
collision = true;
}
}
}
}
return collision;
}