mirror of
https://github.com/Balshgit/public.git
synced 2025-09-11 18:00:42 +03:00
Add Anna Mosina solution
This commit is contained in:
parent
fb741f4685
commit
50995cd854
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,2 @@
|
|||||||
.idea
|
.idea
|
||||||
blocks_test.py
|
blocks_test.py
|
||||||
Anna_blocks.py
|
|
130
Anna_blocks.py
Normal file
130
Anna_blocks.py
Normal file
@ -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)
|
Loading…
x
Reference in New Issue
Block a user