题目大意:已知n行m列的扫雷游戏中所有地雷的位置,请统计没有地雷的格子周围分别有多少个地雷。
题目描述
扫雷游戏是一款十分经典的单机小游戏。 在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。 玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。 游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、左下、右上、右下八个方向上与之直接相邻的格子。
输入
第一行用一个空格隔开的两个整数n和m,分别表示雷区的行数和列数。 接下来n行,每行m个字符,描述了雷区中的地雷分布情况。字符∗’表示相应的格子是地雷格,字符(?)`表示相应的格子是非地雷格子。相邻字符之间无分隔符。
输出
输出文件包括n行,每行m个字符,描述了整个雷区。用∗表示地雷格,用周围地雷格数表示非地雷格。相邻字符之间无分隔符。
样例输入
样例输入1
3 3
*??
???
?*?
样例输入2
2 3
?*?
*??
样例输出
样例输出1
*10
221
1*1
样例输出2
2*1
*21
提示
对于所有的数据,1≤n≤100, 1≤m≤100。
NOIP2015普及组第二题
解题思路
首先,读入地图,建议用字符串读入;逐个字符读入的话,标准输入的话还需要考虑行末换行符。
接着,逐个格子输出结果,如果是地雷,直接输出地雷;否则,遍历周围8个格子,如果是地雷,地雷数加1,输出地雷数。输出完一行就换行。
(当然,开个int数组,读到地雷,周围格子加1个地雷,最后输出int数组和地雷也是可以的。)