Haftungsausschluss: Die Geschichte, die in dieser Frage erzählt wird, ist vollständig fiktiv und wurde ausschließlich zum Zweck der Bereitstellung eines Intro erfunden.
Ich bin ein böser Bauer, und um die Weizenpreise in meiner Gegend zu vertreiben, habe ich beschlossen, die Felder aller Bauern um mich herum zu verbrennen. Ich würde wirklich gerne sehen, wie die Felder in Flammen aufgehen (damit ich mein böses Lachen gebrauchen und meine Hände vor Freude reiben kann), aber ich möchte auch nicht beim Zuschauen erwischt werden, also musst du das Feldwesen simulieren für mich verbrannt.
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, die als Eingabe ein Feld verwendet und die Phasen des Brennens zurückgibt, bis das gesamte Feld Asche ist. Ein bestimmter Abschnitt des brennenden Feldes wird durch eine ganze Zahl dargestellt, die die Intensität der Flamme darstellt. Ein Feuer beginnt bei "1" und geht weiter zu "2" und dann zu "3" und so weiter. Sobald ein Feuer "4" erreicht, erfasst es alle direkt (nicht diagonal) angrenzenden Bereiche, die im Feuer brennbar sind. Sobald es "8" erreicht, brennt es bei der nächsten Iteration aus und verwandelt sich in Asche, dargestellt durch ein "A". Wenn ein Bereich noch nicht vom Feuer berührt wurde, wird er durch eine "0" dargestellt. Wenn das Feld beispielsweise so aussieht:
100
000
Ihr Programm sollte dies ausgeben:
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
Wenn Sie möchten, können Sie die obigen Symbole durch einen beliebigen Satz von Symbolen ersetzen, sofern diese konsistent und voneinander verschieden sind.
Eingang:
Die Startposition des Felds in einer beliebigen Standardform, z. B. einer Zeichenfolge mit Trennlinie wie oben.
Ausgabe:
Das Feld in jeder Iteration, während es brennt, entweder als Array oder als Zeichenfolge, die von einem Zeichen begrenzt wird.
Testfälle:
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
Wertung:
Dies ist Code-Golf , die niedrigste Punktzahl in Bytes gewinnt!