Buscaminas es un popular juego de rompecabezas en el que debes descubrir qué fichas son "minas" sin hacer clic en esas fichas. Cada ficha es una mina (representada por *
) o una pista, es decir, un número del 0 al 8 que representa cuántas de las 8 fichas vecinas son minas. Su tarea hoy es tomar una tabla que contenga las minas y completar todas las pistas. Por ejemplo, mira el siguiente tablero de 5x4, con 5 minas:
*
* *
*
*
Después de completar las pistas, el tablero se verá así:
2*211
*33*1
12*32
0112*
Detalles
Debe escribir un programa completo o una función que incluya una cuadrícula de caracteres que contenga solo espacios y asteriscos y genere otra cuadrícula donde cada espacio se reemplace con el número de minas adyacentes (asteriscos). Cualquiera de estos son formatos aceptables para sus cuadrículas:
Una cadena con líneas nuevas
Una lista 2D de caracteres / cadenas de caracteres individuales
Una lista de cadenas
Puede suponer que la cuadrícula será al menos 1x1, aunque es posible que sea todas las minas o todos los espacios.
La cuadrícula de entrada siempre se rellenará con el número apropiado de espacios. Como de costumbre, este es el código de golf , por lo que se aplican las lagunas estándar y gana la respuesta más corta en bytes.
Muestra IO
Para que pueda ver el espacio en blanco, mostraré todas las muestras de E / S con paréntesis.
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]