首页 > 试题广场 >

小红的扫雷游戏

[编程题]小红的扫雷游戏
  • 热度指数:1422 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红最近爱上了扫雷游戏。
所谓扫雷游戏的规则是这样:给定一个n*m的矩阵,每个位置有可能是地雷。如果点击了一个地雷,那么直接被炸死,游戏结束。如果点击的一个位置不是地雷,那么将显示该格子周围 8 个格子中地雷数量的总和。
“周围 8 个格子”的定义:对于一个点 (x,y),其周围 8 个格子的坐标为 ,其中
现在小红拿到了一个 4*4 的矩阵,其中有一些位置已经被翻开。小红想知道,根据现有的信息,有哪些位置一定是雷,有哪些位置一定不是雷?小红希望你能把地图标记上。

输入描述:
输入4行,每行是一个长度为 4 的字符串。
其中字符 '.' 代表该位置的情况未知。
字符是数字代表该位置不是雷,且表示周围点的雷数量。
保证给定的地图一定合法。


输出描述:
对于一个确定的格子,如果是雷则标记为 'X',不是雷则标记为 'O'。
不确定的格子保留字符 '.',已经确定的数字也按数字输出。
示例1

输入

.121
....
....
....

输出

O121
OXOX
....
....

说明

判断依据如下:
根据(0,1)坐标的1,得知它周围4个只有一个雷。然后结合(0,2)坐标的2,得知(1,3)坐标一定是雷。
同理可得出(1,1)坐标一定是雷。根据两个已知的雷就可以判断出前两行其他均不是雷。
示例2

输入

....
..8.
....
....

输出

.XXX
.X8X
.XXX
....

说明

判断依据如下:
由于(1,2)坐标是8,那么该点周围有8个雷,且一共只有8个节点。所以这8个节点一定全部都是雷。

这道题你会答吗?花几分钟告诉大家答案吧!