add new task
This commit is contained in:
parent
568f5a6ebb
commit
7803f8a9ad
33
practica/stepik/stepik_tasks/sapper.py
Normal file
33
practica/stepik/stepik_tasks/sapper.py
Normal 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 ()
|
Loading…
Reference in New Issue
Block a user