Задание 14
Напиши реализацию метода removeFullLines в классе Field
Надо
а) удалить все строки из матрицы, которые полностью заполнены (состоят из одних единиц)
б) сместить оставшиеся строки вниз
в) создать новые строки взамен отсутствующих.

ВАЖНО!
matrix[y][x] содержит элемент с координатами (x,y)
matrix[i] содержит i-ю строку
а) Мы можем удалить стоку:
matrix[i] = null

б)Скопировать [ссылку на] строку:
matrix[i+1] = matrix[i];

в)Создать новую строку:
matrix[i] = new int[width];

 

public void removeFullLines() {
        int[][] matrixCopy = new int[matrix.length][matrix[0].length];
        for (int i = 0; i < matrix.length; i++) {
            Arrays.fill(matrixCopy[i], 0);
        }
        int mCount = matrixCopy.length - 1;
        for (int i = matrix.length - 1; i >= 0; i--) {
            String line = Arrays.toString(matrix[i]);
            System.out.println("check: " + line);
            if (line.contains("0") && line.contains("1")) {
                matrixCopy[mCount--] = Arrays.copyOf(matrix[i], matrix[i].length);
            }
        }
        matrix = matrixCopy;
        for (int[] aMatrix : matrix) {
            for (int anAMatrix : aMatrix) {
                System.out.print(anAMatrix);
            }
            System.out.println();
        }
    }
public void step() {
    //опускам фигурку вниз

    //если разместить фигурку на текущем месте невозможно:
    //поднимаем обратно
    //приземляем
    //если фигурка приземлилась на самом верху - игра окончена
    //удаляем заполненные линии
    //создаем новую фигурку

    figure.down();
    
    if (figure.isCurrentPositionAvailable()) {
        figure.up();    //поднимаем до границы лежащего блока / дна стакана
        figure.landed();
        if (figure.getY() == 0) {
            isGameOver = true;
        }
        field.removeFullLines();
        figure = FigureFactory.createRandomFigure(field.getWidth() / 2, 0);
    }
}
Задание 16
Напиши свою реализацию методов left(), right(), up(), down() в классе Figure.
Подумай, что должны делать эти методы?

public void left() {
        x--;
    }

    public void right() {
        x++;
    }

    public void down() {
        y++;
    }

    public void up() {
        y--;
    }

 

((figureMatrix[i][j] == 1 && fieldMatrix[figure.getY() + i][figure.getY() + j] == 1)    //если фигурка цепляет блок в стакане
                       || (figureMatrix[i][j] == 1 && (i + figure.getY()) >= fieldMatrix.length)) {    //если фигурка провалилась за дно стакана