Rutas
/
MIPS Assembly
MIPS Assembly
/
Ejercicios
/
Campo de flores
Campo de flores

Campo de flores

Difícil

Introducción

Flower Field es una reinterpretación compasiva del popular juego Buscaminas. El objetivo del juego es encontrar todas las flores del jardín con la ayuda de pistas numéricas que indican cuántas flores hay directamente adyacentes (en horizontal, en vertical o en diagonal) a una casilla. «Flower Field» se distribuyó en versiones regionales de Microsoft Windows en Italia, Alemania, Corea del Sur, Japón y Taiwán.

Instrucciones

Tu tarea consiste en añadir el recuento de flores a las casillas vacías de un jardín de Campo de flores ya completado. El jardín en sí es un tablero rectangular compuesto por casillas que o bien están vacías (' ') o bien contienen una flor ('*').

Para cada casilla vacía, cuenta el número de flores adyacentes (en horizontal, en vertical y en diagonal). Si la casilla vacía no tiene flores adyacentes, déjala vacía. En caso contrario, sustitúyela por el número de flores adyacentes.

Por ejemplo, puede que recibas un tablero de 5 x 4 como este (aquí los espacios vacíos se representan con el carácter '·' para que se vean en pantalla):

·*·*·
··*··
··*··
·····

Que tu código debe transformar en esto:

1*3*1
13*31
·2*2·
·111·

Formato del jardín

El jardín se representa como un string terminado en nulo, con un carácter de nueva línea al final de cada fila.

Un ejemplo sería " \n * \n \n"

Registros

Registro Uso Tipo Descripción
$a0 entrada dirección string de entrada terminado en nulo
$a1 entrada/salida dirección string de salida terminado en nulo
$t0-9 temporal cualquiera para almacenamiento temporal
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
MIPS Assembly Exercism

¿Listo para empezar Campo de flores?

Regístrate en Exercism para aprender y dominar MIPS Assembly con 70 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Campo de flores!

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.