扫雷游戏场地是一副n行,m列的字符组成的地图;
? * * ? ? * ? ? ?
这其中*表示地雷,?表示安全区域
现在要求计算每个安全区域周围的地雷数量;
周围的定义为:安全区域位置的“上”、“下”、“左”、“右”、“左上”、“右上”、“左下”、“右下”八个区域
如上个地图所示的安全区域 “?”内填入周围的地雷数量:
1 * * 1 3 * 0 1 1
一个安全区域,周围如果出现三个以上的地雷,就自动变成高危区域,以‘#’表示
1 * *
1 # *
0 1 1
高危区域的周围将全部变成禁地,以@表示,则最后整张地图将变为
@ @ @
@ # @
@ @ @
输入样例:
3 3
? * * ? ? * ? ? ?
输出样例
@ @ @
@ # @
@ @ @
问题分解
定义一个二维字符数组来存储雷区,再定义一个二维整数数组来存储每个位置周围地雷的个数。
输入雷区时,可以用gets逐行读入,也可以用getchar逐个读入字符。
输出字符数组时,可以用putchar逐个字符输出;