From 7803f8a9ad35325d78b1425aee1fdc0e63ffb335 Mon Sep 17 00:00:00 2001 From: Yesen Date: Tue, 10 Oct 2023 15:37:09 +0300 Subject: [PATCH] add new task --- practica/stepik/stepik_tasks/sapper.py | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 practica/stepik/stepik_tasks/sapper.py diff --git a/practica/stepik/stepik_tasks/sapper.py b/practica/stepik/stepik_tasks/sapper.py new file mode 100644 index 0000000..117afe9 --- /dev/null +++ b/practica/stepik/stepik_tasks/sapper.py @@ -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 () \ No newline at end of file