add new task

This commit is contained in:
Yesen 2023-10-10 15:37:09 +03:00
parent 568f5a6ebb
commit 7803f8a9ad

View File

@ -0,0 +1,33 @@
# # Details in README.md
# Plan of solition:
# 1) создать двумерный список
# 2) заполнить нулями
# 3) -1 - это мина , заполнить мины, заполнить цифры
# 4) координаты i()номер строки -1 j(номер столбца)-1, di dj \ i+di\ j + dj\ di dj -1..1
n,m,k = (int(i) for i in input().split()) #рассчитываем размер таблицы (n- строки,m - столбцы) и кол-во мин
a = [[0 for j in range (m)] for i in range (n)] #инициилизируем двумерный массив
#заполняем -1 в сответвующую позицию
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 ()