Как передать номер строки и столба массива в функцию с последующими операциями над этими значениями?
Пишу тетрис на js с использованием массива. Проблема в том что мне нужно как то передать номер ряда и строки элемента(блока) массива в функцию, чтоб уже производить какие либо операции над ним. В общем вот с коментариями -
let tetrisSpace = [ //сам массив
[1, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
];
let showDisplay = () => { // вывод в консоль для отладки
console.log(tetrisSpace[0][0], tetrisSpace[0][1], tetrisSpace[0][2], tetrisSpace[0][3]);
console.log(tetrisSpace[1][0], tetrisSpace[1][1], tetrisSpace[1][2], tetrisSpace[1][3]);
console.log(tetrisSpace[2][0], tetrisSpace[2][1], tetrisSpace[2][2], tetrisSpace[2][3]);
console.log(tetrisSpace[3][0], tetrisSpace[3][1], tetrisSpace[3][2], tetrisSpace[3][3]);
};
//дальше идет функция которая будет перемещать мою единицу(блок) в массиве при нажатии кнопки
let moveNewBlock = (array[y][x]) => { //array[y][x] - так делать нельзя! Но я просто не знаю как иначе(((
addEventListener("keydown", function (event) {
if (event.keyCode == 65) {
array[y][x] = 0;
showDisplay();
return array[y][x-1] = 1;
}
if (event.keyCode == 68) {
array[y][x] = 0;
showDisplay();
return array[y][x+1] = 1;
}
})
};
moveNewBlock(tetrisSpace[0][0]); //здесь задаются кординаты перемещаймого обьекта, по идее он должен быть в лупе до тех пор пока единица не дойдет до конца
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
let moveNewBlock = (array, y, x) => {/* */};
moveNewBlock(tetrisSpace, 0, 0);