Minesweeper es un juego popular en el que el jugador tiene que encontrar las minas usando pistas numéricas que indican cuántas minas hay directamente adyacentes (en horizontal, en vertical o en diagonal) a una casilla.
Tu tarea es agregar el número de minas a los cuadros vacíos de un tablero de Buscaminas ya resuelto.
El tablero es un rectángulo compuesto por cuadros que están vacíos (' ') o que contienen una mina ('*').
Para cada cuadro vacío, cuenta cuántas minas tiene adyacentes (en horizontal, en vertical y en diagonal). Si el cuadro vacío no tiene minas adyacentes, déjalo vacío. De lo contrario, reemplázalo por la cantidad de minas adyacentes.
Por ejemplo, puedes recibir un tablero de 5 x 4 como este (los espacios vacíos se representan aquí con el carácter «·» para mostrarlos en pantalla):
·*·*·
··*··
··*··
·····
Y tu código debe transformarlo en este:
1*3*1
13*31
·2*2·
·111·
El campo minado se representa como un string, con un carácter de nueva línea al final de cada fila.
Un ejemplo sería " \n * \n \n"
El búfer para el string de entrada usa los bytes 64-319 de la memoria lineal.
El string de entrada se puede modificar en el lugar si lo deseas.
Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.
Exploramos bucles for anidados, el uso ingenioso de min/max para simplificar la verificación de límites, las canalizaciones funcionales y el uso de matrices bidimensionales.