private void remove_full_lines(Field field) { int shift = 0; for (int i = field.return_size()[1] - 1; i >= 0; i--) { int quantity = 0; for (int j = 0; j < field.return_size()[0]; j++) { if (field.cell_exist(new int[2] { j, i })) { quantity++; } } if (quantity == 10) { for (int j = 0; j < field.return_size()[0]; j++) { field.remove_cell(new int[2] { j, i }); } shift++; } else if (shift > 0) { for (int j = 0; j < field.return_size()[0]; j++) { if (field.cell_exist(new int[2] { j, i })) { field.move_cell(new int[2] { j, i }, 0, shift); } } } } score = Convert.ToInt32(Math.Pow(shift, 2)); }
// использовать методы класса матрица private void cell_transfer(Field field, Figure figure) { int[,] matrix = figure.return_matrix(); int[] fig_coordinates = figure.return_coordinates(); int[] coordinates = new int[2]; for (int i = 0; i < matrix.GetLength(0); i++) { coordinates[0] = i + fig_coordinates[0]; for (int j = 0; j < matrix.GetLength(1); j++) { coordinates[1] = j + fig_coordinates[1]; if (matrix[i, j] > 0) { field.new_cell(coordinates, figure.return_color()); } if (matrix[i, j] < 0) { field.remove_cell(coordinates); } } } }