扫雷(Minesweeper)是一种流行的益智游戏,您必须在不单击这些图块的情况下发现哪些图块是“地雷”。每个图块要么是地雷(用表示*
),要么是线索,即从0到8的数字表示在8个相邻图块中有多少是地雷。今天的任务是拿一个包含地雷的板子,并填写所有线索。例如,看下面的5x4板,有5个地雷:
*
* *
*
*
填写线索后,董事会将如下所示:
2*211
*33*1
12*32
0112*
细节
您必须编写一个完整程序或一个函数,该函数接受仅包含空格和星号的字符网格,并输出另一个网格,其中每个空格都用相邻的地雷(星号)替换。这些是您的网格可接受的格式:
带有换行符的字符串
二维字符列表/单个字符串
字符串列表
您可以假定网格至少为 1x1,尽管可能是所有地雷或所有空间。
输入网格将始终填充适当数量的空格。像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且以字节为单位的最短答案为胜!
样品IO
为了看到空白,我将显示所有带有括号的示例IO。
Input:
[ * ]
[* ]
[ ]
[ ]
[ ** ]
[ * * ]
Output:
[1101*1]
[*10111]
[110000]
[012210]
[12**21]
[1*33*1]
Input:
[****]
[****]
Output:
[****]
[****]
Input:
[ ]
[ ]
[ ]
[ ]
Output:
[000]
[000]
[000]
[000]
Input:
[* ]
[** ]
[ ]
[ *]
Ouput:
[*310]
[**10]
[2221]
[001*]
Input:
[** ]
[* *]
[ * ]
[ ]
[* ]
[**** ]
Output:
[**1011]
[*4211*]
[12*111]
[121100]
[*43210]
[****10]
Input:
[ * ]
[ * ]
[ * ]
[** *** ]
[ *** ]
[ ]
[ ** ]
[ * * ]
[* ** ]
[ ** ]
Output:
[00001*1111]
[00002221*1]
[22102*4321]
[**102***31]
[221013***1]
[0000013542]
[0112111**1]
[12*2*12442]
[*212112**2]
[1100002**2]