マインスイーパは人気のパズルゲームで、どのタイルが「地雷」であるかを、それらのタイルをクリックせずに発見する必要があります。各タイルは地雷(で表される*
)または手掛かり、つまり8つの隣接するタイルのうちどれだけが地雷であるかを表す0から8までの数字です。今日のあなたの仕事は、鉱山を含むボードを取り、すべての手がかりを埋めることです。たとえば、5つの地雷がある次の5x4ボードを見てください。
*
* *
*
*
手がかりを入力すると、ボードは次のようになります。
2*211
*33*1
12*32
0112*
詳細
完全なプログラム、またはスペースとアスタリスクのみを含む文字のグリッドを取り込み、各スペースが隣接する鉱山(アスタリスク)の数で置き換えられる別のグリッドを出力する関数を作成する必要があります。これらはいずれも、グリッドに受け入れられる形式です。
改行を含む文字列
文字/単一文字列の2Dリスト
文字列のリスト
グリッドは少なくとも 1x1であると仮定できますが、グリッドはすべて地雷またはすべてのスペースである可能性があります。
入力グリッドには常に適切な数のスペースが埋め込まれます。いつものように、これはcode-golfなので、標準の抜け穴が適用され、バイト単位の最短回答が勝ちます!
サンプル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]