JS Проблема удаления тетриса - PullRequest
0 голосов
/ 17 апреля 2020

учусь JavaScript и для этого я хотел сделать игру в тетрис. До сих пор у меня было много функциональности, но я застрял в проблеме clearRow () (clear line).

Мой код работает следующим образом. Я проверяю каждую строку 2D-массива gameBoardSquared. Если все блоки в строке имеют синий цвет, эту строку следует удалить.

Вот мой код:

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.

edit: я перебираю минимальные столбцы, так как вся игровая доска сделано в холсте. Там ось перевернута.

1 Ответ

0 голосов
/ 17 апреля 2020

Понял!

Спасибо ТАК за мотивацию: -).

function clearRow(){
    for(var rows = 0; rows < gameBoardSquared.length; rows++){
        while(gameBoardSquared.every(k => k[rows].squareColor == "blue")){
            for(var i = 0; i < gameBoardSquared.length; i++){
                console.log(gameBoardSquared[i].splice(rows, 1));
            }
        }
    }
}
...