Track
/
MIPS Assembly
MIPS Assembly
/
Esercizi
/
Campo di fiori
Campo di fiori

Campo di fiori

Difficile

Introduzione

Campo di fiori è una rivisitazione gentile del popolare gioco Minesweeper. Lo scopo del gioco è trovare tutti i fiori del giardino usando gli indizi numerici che indicano quanti fiori sono direttamente adiacenti (in orizzontale, in verticale, in diagonale) a una casella. «Campo di fiori» è stato distribuito nelle versioni regionali di Microsoft Windows in Italia, Germania, Corea del Sud, Giappone e Taiwan.

Istruzioni

Il tuo compito è aggiungere il numero di fiori alle caselle vuote di un giardino del Campo di fiori completato. Il giardino stesso è una griglia rettangolare composta da caselle che possono essere vuote (' ') oppure contenere un fiore ('*').

Per ogni casella vuota, conta il numero di fiori adiacenti (in orizzontale, in verticale, in diagonale). Se la casella vuota non ha fiori adiacenti, lasciala vuota. Altrimenti sostituiscila con il numero di fiori adiacenti.

Ad esempio, potresti ricevere una griglia 5 x 4 come questa (qui gli spazi vuoti sono rappresentati con il carattere «·» per la visualizzazione sullo schermo):

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

Che il codice dovrebbe trasformare in questa:

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

Formato del giardino

Il giardino è rappresentato come una stringa terminata da null, con un carattere di nuova riga alla fine di ogni riga.

Un esempio potrebbe essere " \n * \n \n"

Registri

Registro Utilizzo Tipo Descrizione
$a0 input indirizzo stringa di input terminata da null
$a1 input/output indirizzo stringa di output terminata da null
$t0-9 temporaneo qualsiasi per l'archiviazione temporanea
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
MIPS Assembly Exercism

Vuoi iniziare Campo di fiori?

Iscriviti a Exercism per imparare e padroneggiare MIPS Assembly con 70 esercizi e il mentoring di persone reali, tutto gratis.

Approfondimento su Campo di fiori!

Esploriamo i cicli for annidati, l'uso intelligente di min/max per semplificare il controllo dei limiti, le pipeline funzionali e l'uso di matrici bidimensionali.