diff --git a/.gitignore b/.gitignore index 7ea04f4..cf6e5d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .idea -blocks_test.py -Anna_blocks.py \ No newline at end of file +blocks_test.py \ No newline at end of file diff --git a/Anna_blocks.py b/Anna_blocks.py new file mode 100644 index 0000000..545b687 --- /dev/null +++ b/Anna_blocks.py @@ -0,0 +1,130 @@ +def check(arr, i_num, j_num, n_i, n_j, list_cells): + arr[i_num][j_num] = 0 + for row in list_cells: + if row[2] == 1: + check_cell(arr, row[0], row[1], n_i, n_j) + + +def check_cell(arr, i, j, n_i, n_j): + if i == 0 and j == 0: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + + check(arr, i, j, n_i, n_j, [ + [i + 1, j + 1, arr[i + 1][j + 1]], + [i, j + 1, arr[i][j + 1]], + [i + 1, j, arr[i + 1][j]]]) + elif i == 0 and j != 0 and j != n_j - 1: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + check(arr, i, j, n_i, n_j, + [ + [i, j - 1, arr[i][j - 1]], + [i, j + 1, arr[i][j + 1]], + [i + 1, j - 1, arr[i + 1][j - 1]], + [i + 1, j, arr[i + 1][j]], + [i + 1, j + 1, arr[i + 1][j + 1]] + ]) + elif i != 0 and i != n_i - 1 and j == 0: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + print('nya') + check(arr, i, j, n_i, n_j, [ + [i - 1, j, arr[i - 1][j]], + [i + 1, j, arr[i + 1][j]], + [i - 1, j + 1, arr[i - 1][j + 1]], + [i, j + 1, arr[i][j + 1]], + [i - 1, j + 1, arr[i - 1][j + 1]] + ]) + elif i != 0 and i != n_i - 1 and j == 0: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + print('truru') + check(arr, i, j, n_i, n_j, + [ + [i - 1, j, arr[i - 1][j]], + [i + 1, j, arr[i + 1][j]], + [i - 1, j + 1, arr[i - 1][j + 1]], + [i, j + 1, arr[i][j + 1]], + [i - 1, j + 1, arr[i - 1][j + 1]] + ]) + elif i == n_i - 1 and j == n_j - 1: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + check(arr, i, j, n_i, n_j, + [ + [i - 1, j, arr[i - 1][j]], + [i - 1, j - 1, arr[i - 1][j - 1]], + [i, j - 1, arr[i][j - 1]] + ]) + elif i == n_i - 1 and j != n_j - 1 and j != 0: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + check(arr, i, j, n_i, n_j, + [ + [i - 1, j, arr[i - 1][j]], + [i - 1, j - 1, arr[i - 1][j - 1]], + [i - 1, j + 1, arr[i - 1][j + 1]], + [i, j - 1, arr[i][j - 1]], + [i, j + 1, arr[i][j + 1]] + + ]) + elif i == n_i - 1 and j == 0: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + print('trata') + check(arr, i, j, n_i, n_j, + [ + [i - 1, j, arr[i - 1][j]], + [i - 1, j + 1, arr[i - 1][j + 1]], + [i, j + 1, arr[i][j + 1]] + + ]) + elif i != n_i - 1 and i != 0 and j == n_j - 1: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + check(arr, i, j, n_i, n_j, + [ + [i - 1, j, arr[i - 1][j]], + [i + 1, j, arr[i + 1][j]], + [i + 1, j - 1, arr[i + 1][j - 1]], + [i, j - 1, arr[i][j - 1]], + [i - 1, j - 1, arr[i - 1][j - 1]] + ]) + elif i == 0 and j == n_j - 1: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + check(arr, i, j, n_i, n_j, + [ + + [i + 1, j, arr[i + 1][j]], + [i + 1, j - 1, arr[i + 1][j - 1]], + [i, j - 1, arr[i][j - 1]], + ]) + else: + print(f'I: {i}, J: {j}, VALUE: {arr[i][j]}') + print('tut') + check(arr, i, j, n_i, n_j, + [ + [i, j - 1, arr[i][j - 1]], + [i, j + 1, arr[i][j + 1]], + [i + 1, j - 1, arr[i + 1][j - 1]], + [i + 1, j, arr[i + 1][j]], + [i + 1, j + 1, arr[i + 1][j + 1]], + [i - 1, j - 1, arr[i - 1][j - 1]], + [i - 1, j, arr[i - 1][j]], + [i - 1, j + 1, arr[i - 1][j + 1]] + ]) + + +array = [[1, 0, 1, 0, 1, 0], + [0, 1, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0], + [0, 0, 1, 0, 0, 0], + [0, 1, 0, 1, 0, 0], + ] + + +n_i = len(array) +n_j = len(array[0]) +count = 0 +for i in range(len(array)): + for j in range(len(array[i])): + + if array[i][j] == 1: + cell = [i, j] + count += 1 + check_cell(array, i, j, n_i, n_j) + +print('Total blocks', count)