Задание 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)) { //если фигурка провалилась за дно стакана
Leave A Comment