. В ячейке сетки может находиться или отсутствовать мина.
Напишите программу, которая выводит "решённое" поле, т.е. для каждой ячейки, не являющейся миной, указывается число мин, находящихся в соседних ячейках (учитывая диагональные направления)
Формат ввода:
На первой строке указываются два натуральных числа
, после чего в
Формат вывода:
строк поля, в каждой ячейке которого будет либо число от 0 до 8, либо
мина (обозначенная символом "*"), при этом число означает количество мин
в соседних ячейках поля.
Sample Input:
4 4 ..*. **.. ..*. ....
Sample Output:
23*1 **32 23*1 0111
1
a = list(map(int,input().split()))
2
def is_mine(x,y):
3
#x 0 .. a[0]
4
if x not in range (a[0]):
5
return False
6
#y 0 .. a[1]
7
if y not in range (a[1]):
8
return False
9
if b[x][y]=="*":
10
return True
11
else:
12
return False
13
def find_mine(x,y):
14
if is_mine(x,y):
15
return '*'
16
sum=0
17
if is_mine(x+1,y):
18
sum+=1
19
if is_mine(x-1,y):
20
sum+=1
21
if is_mine(x,y+1):
22
sum+=1
23
if is_mine(x,y-1):
24
sum+=1
25
if is_mine(x+1,y+1):
26
sum+=1
27
if is_mine(x-1,y-1):
28
sum+=1
29
if is_mine(x-1,y+1):
30
sum+=1
31
if is_mine(x+1,y-1):
32
sum+=1
33
return str(sum)
34
b=[]
35
for i in range (a[0]):
36
b+=[list(input())]
37
for i in range(len(b)):
38
for j in range(len(b[i])):
39
print(find_mine(i,j),end="")
40
print()
Немає коментарів:
Дописати коментар