python_math_stat/practica/stepik/stepik_tasks/sapper.py

28 lines
1.6 KiB
Python
Raw Normal View History

2023-10-25 12:30:27 +03:00
## Details in README.md
2023-10-10 15:37:09 +03:00
n,m,k = (int(i) for i in input().split()) #рассчитываем размер таблицы (n- строки,m - столбцы) и кол-во мин
a = [[0 for j in range (m)] for i in range (n)] #инициилизируем двумерный массив
2023-10-25 12:30:27 +03:00
#заполняем -1 в соОтветвующую позицию
2023-10-10 15:37:09 +03:00
for i in range (k):
row, col = (int(i) - 1 for i in input().split()) #row, col - индексы, индексация начианется с 0, нам надо чтобы с 1, то мы сразу вычтем -1
a[row][col] = -1
#заполняем таблицу
for i in range (n): #хотим посчитать сколько находится по соседству с ней мин (-1)
for j in range(m):
if a[i][j] == 0: #причем не учитываются те, где уже есть -1
for di in range (-1,2):
for dj in range (-1,2):
ai = i + di #посчитаем координаты клетки соседней
aj = j +dj
#проверим, что не зашли за координаты клетки
if 0 <= ai < n and 0 <= aj < m and a[ai][aj] == -1: #если это верно, то наша клетка внутри поля \ нашли мину
a[i][j] += 1
#осталось вывести таблицу
for i in range (n):
for j in range(m):
if a[i][j] == -1:
print ('*', end='')
elif a[i][j] == 0:
print ('.', end = '')
else:
print (a[i][j], end= '')
print ()