扫雷

题目描述

在一个n行m列的方格图上有一些位置有地雷,另外一些位置为空。 请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。

输入描述

输入的第一行包含两个整数n,m。 第2行到第n+1行每行包含m个整数,相整数之间用一个空格分隔。如果对应的整数为0,表示这一格没有地雷。如果对应的整数为1,表示这一格有地雷

输出描述

输出n行,每行m个整数,相邻整数之间用空格分隔对于没有地雷的方格,输出这格周围的地雷数量。对于有地雷的方格,输出9。

1
2
3
4
5
i-1,j-1  i-1,j  i-1,j+1

i,j-1 i,j i,j+1

i+1,j-1 i+1,j i+1,j+1

MyCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
n,m=map(int,input().split())
maps=[[3 for i in range(m+2)]]
res=[[0 for i in range(m)] for j in range(n)]
for i in range(n):
a=[3]+list(map(int, input().split()))+[3]
maps.append(a)
maps.append([3 for i in range(m+2)])
for i in range(1,n+1):
for j in range(1,m+1):
if maps[i][j]==1:
res[i-1][j-1]=9
else:
temp=0
if maps[i-1][j-1]==1:
temp+=1
if maps[i-1][j]==1:
temp+=1
if maps[i-1][j+1]==1:
temp+=1
if maps[i][j-1]==1:
temp+=1
if maps[i][j+1]==1:
temp+=1
if maps[i+1][j-1]==1:
temp+=1
if maps[i+1][j]==1:
temp+=1
if maps[i+1][j+1]==1:
temp+=1
res[i-1][j-1]=temp
for i in res:
print(" ".join(map(str,i)))

扫雷
https://ianwusb.blog/2024/03/24/扫雷/
作者
Ianwusb
发布于
2024年3月24日
许可协议