Minesweeper es un juego muy popular en el que hay 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 añadir el número de minas a las casillas vacías de un tablero de Buscaminas ya completado. El tablero en sí es un rectángulo compuesto por casillas que están vacías (' ') o que contienen una mina ('*').
Para cada casilla vacía, cuenta cuántas minas tiene adyacentes (en horizontal, en vertical y en diagonal). Si la casilla vacía no tiene minas adyacentes, déjala vacía. En caso contrario, sustitúyela por el número de minas adyacentes.
Por ejemplo, puedes recibir un tablero de 5 x 4 como este (aquí los espacios vacíos se representan con el carácter '·' para mostrarlos en pantalla):
·*·*·
··*··
··*··
·····
Que tu código debería transformar en esto:
1*3*1
13*31
·2*2·
·111·
El campo de minas se representa como un string, con un carácter de salto de 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 a 319 de la memoria lineal.
El string de entrada se puede modificar in situ 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, un uso ingenioso de min/max para simplificar la comprobación de límites, canalizaciones funcionales y el uso de matrices bidimensionales.