Dichiarazione di non responsabilità: la storia raccontata all'interno di questa domanda è del tutto inventata e inventata esclusivamente allo scopo di fornire un'introduzione.
Sono un malvagio agricoltore e per aumentare il prezzo del grano nella mia zona, ho deciso di bruciare i campi di tutti i contadini intorno a me. Mi piacerebbe davvero vedere i campi andare in fiamme (così posso usare la mia risata malvagia e strofinarmi le mani insieme alla gioia), ma anche io non voglio essere sorpreso a guardare, quindi ho bisogno che tu simuli il campo incenerito per me.
Il tuo compito:
Scrivi un programma o una funzione che accetta come input un campo e restituisce le fasi di masterizzazione fino a quando l'intero campo non è cenere. Una sezione specifica del campo che è in fiamme è rappresentata da un numero intero che rappresenta l'intensità della fiamma. Un incendio inizia da "1" e passa a "2", quindi a "3" e così via. Una volta che un incendio raggiunge "4", cattura qualsiasi area adiacente direttamente (non in diagonale) infiammabile al fuoco. Quando raggiunge "8", si esaurisce alla successiva iterazione e si trasforma in cenere, rappresentata da una "A". Quando un'area non è stata ancora toccata dal fuoco, è rappresentata da uno "0". Ad esempio, se il campo è simile al seguente:
100
000
Il tuo programma dovrebbe produrre questo:
100
000
200
000
300
000
410
100
520
200
630
300
741
410
852
520
A63
630
A74
741
A85
852
AA6
A63
AA7
A74
AA8
A85
AAA
AA6
AAA
AA7
AAA
AA8
AAA
AAA
Se lo desideri, puoi sostituire i simboli sopra con qualsiasi set di simboli che scegli, a condizione che siano coerenti e distinti tra loro.
Ingresso:
La posizione iniziale del campo, in qualsiasi forma standard, come una stringa delimitata da nuova riga come sopra.
Produzione:
Il campo in ogni iterazione mentre brucia, sia come una matrice, sia come una stringa delimitata da un carattere.
Casi test:
0301
000A
555
|
v
0301
000A
555
1412
010A
666
2523
020A
777
3634
030A
888
4745
141A
AAA
5856
252A
AAA
6A67
363A
AAA
7A78
474A
AAA
8A8A
585A
AAA
AAAA
6A6A
AAA
AAAA
7A7A
AAA
AAAA
8A8A
AAA
AAAA
AAAA
AAA
punteggio:
Questo è code-golf , il punteggio più basso in byte vince!