Minesweeper adalah permainan puzzle yang populer di mana Anda harus menemukan ubin mana yang merupakan "ranjau" tanpa mengklik ubin itu. Setiap ubin adalah tambang (diwakili oleh *
) atau petunjuk, yaitu angka dari 0 hingga 8 yang mewakili berapa banyak dari 8 ubin tetangga yang merupakan tambang. Tugas Anda hari ini adalah mengambil papan berisi ranjau dan mengisi semua petunjuk. Misalnya, lihat papan 5x4 berikut, dengan 5 tambang:
*
* *
*
*
Setelah mengisi petunjuk, papan akan terlihat seperti ini:
2*211
*33*1
12*32
0112*
Detail
Anda harus menulis program lengkap atau fungsi yang menggunakan kisi-kisi karakter yang hanya berisi spasi dan tanda bintang dan menampilkan kotak lain di mana setiap ruang diganti dengan jumlah tambang yang berdekatan (tanda bintang). Semua ini adalah format yang dapat diterima untuk kisi Anda:
Sebuah string dengan baris baru di dalamnya
Daftar karakter 2D / string karakter tunggal
Daftar string
Anda dapat menganggap kisi-kisi tersebut setidaknya 1x1, meskipun dimungkinkan untuk menjadi semua tambang atau semua ruang.
Kotak input akan selalu diisi dengan jumlah ruang yang sesuai. Seperti biasa, ini adalah kode-golf , sehingga celah standar berlaku dan jawaban terpendek dalam byte menang!
Contoh IO
Agar Anda bisa melihat spasi, saya akan menunjukkan semua sampel IO dengan tanda kurung di sekitarnya.
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]