编程题:7211 扫雷游戏
扫雷游戏是在n×n的网格内进行的,其中藏有m颗地雷,这些地雷分布在不同的位置。游戏者不停地点开网格中的位置。如果点开了地雷,则引爆地雷,游戏失败。如果点开了没有地雷的位置,则显示一个0~8之内的整数,表示这个位置的8个相邻位置中藏有地雷的位置的数目。图7.7显示了某次游戏中的几个步骤:

<center>图7.7 扫雷游戏</center>
在图7.7中,n为8,m为10.图中空白的位置代表整数0,凸起的位置表示还没点开,类似于“”号的符号代表地雷。图(a)表示点开了部分位置。从图(a)到图(b),游戏者已经点开了2个位置,都没有点到地雷;但在图(c)中,游戏者就没有那么幸运了,他点中了藏有地雷的位置(7,5),游戏失败。如果游戏者将所有没有地雷的位置都点开,则游戏成功。
你的任务是读入地雷分布图及游戏者的点击信息,输出对应的游戏地图。*
### 输入格式:
输入文件包含了多个测试数据。每个测试数据的第1行为一个正整数n,n<=10,表示该扫雷游戏的地图是n×n大小的。接下来n行描述了地雷的位置。每一行有n个字符,每个字符为“.”或“ * ”,其中“.”表示没有地雷的位置,“ * ”表示有地雷的位置。接下来又是n行,每行n个字符,每个字符为“X”或者“.”,其中“X”表示已经点开的位置,“.”表示没有点开的位置。例如,对输入样例中的测试数据,2个8×8行所描绘的地图分别对应于图7.7中的图(a)和图(b)。
输入数据一直到文件尾。
### 输出格式:
对每个测试数据,输出对应的地图,每个位置都用正确的符号填充:已经点开并且没有地雷的位置用0~8之内的整数表示,注意,如果某个位置藏有地雷且被点开了,则将所有地雷的位置都用“ * ”号表示;对没有点开的其他位置都用“.”表示。
每两个测试数据对应的输出之间有一个空行。
### 输入样例:
in
8
...**..*
......*.
....*...
........
........
.....*..
...**.*.
.....*..
xxx.....
xxxx....
xxxx....
xxxxx...
xxxxx...
xxxxx...
xxx.....
xxxxx...
### 输出样例:
out
001.....
0013....
0001....
00011...
00001...
00123...
001.....
00123...
答案:若无答案欢迎评论

<center>图7.7 扫雷游戏</center>
在图7.7中,n为8,m为10.图中空白的位置代表整数0,凸起的位置表示还没点开,类似于“”号的符号代表地雷。图(a)表示点开了部分位置。从图(a)到图(b),游戏者已经点开了2个位置,都没有点到地雷;但在图(c)中,游戏者就没有那么幸运了,他点中了藏有地雷的位置(7,5),游戏失败。如果游戏者将所有没有地雷的位置都点开,则游戏成功。
你的任务是读入地雷分布图及游戏者的点击信息,输出对应的游戏地图。*
### 输入格式:
输入文件包含了多个测试数据。每个测试数据的第1行为一个正整数n,n<=10,表示该扫雷游戏的地图是n×n大小的。接下来n行描述了地雷的位置。每一行有n个字符,每个字符为“.”或“ * ”,其中“.”表示没有地雷的位置,“ * ”表示有地雷的位置。接下来又是n行,每行n个字符,每个字符为“X”或者“.”,其中“X”表示已经点开的位置,“.”表示没有点开的位置。例如,对输入样例中的测试数据,2个8×8行所描绘的地图分别对应于图7.7中的图(a)和图(b)。
输入数据一直到文件尾。
### 输出格式:
对每个测试数据,输出对应的地图,每个位置都用正确的符号填充:已经点开并且没有地雷的位置用0~8之内的整数表示,注意,如果某个位置藏有地雷且被点开了,则将所有地雷的位置都用“ * ”号表示;对没有点开的其他位置都用“.”表示。
每两个测试数据对应的输出之间有一个空行。
### 输入样例:
in
8
...**..*
......*.
....*...
........
........
.....*..
...**.*.
.....*..
xxx.....
xxxx....
xxxx....
xxxxx...
xxxxx...
xxxxx...
xxx.....
xxxxx...
### 输出样例:
out
001.....
0013....
0001....
00011...
00001...
00123...
001.....
00123...
答案:若无答案欢迎评论