Buscaminas

Buscaminas

Difícil

Introducción

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.

Instrucciones

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·

Instrucciones específicas del track

Formato del campo de minas

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"

Memoria reservada

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.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
WebAssembly Exercism

¿Listo para empezar Buscaminas?

Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Buscaminas!

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.