Einführung
Der Atari ST war von Mitte der 80er bis Anfang der 90er Jahre ein recht beliebter Personal Computer, der von einem Motorola 68000-Mikroprozessor angetrieben wurde. Auf diesem Computer bestand das Standardverhalten des Betriebssystems für nicht erfasste CPU-Ausnahmen darin, eine Reihe von Bomben auf dem Bildschirm anzuzeigen, wie in der folgenden Abbildung dargestellt:
Quelle: https://commons.wikimedia.org/wiki/File:Row_of_bombs.png
NB: Je nach Betriebssystemversion können die Bombengrafiken leicht variieren. Aber nehmen wir diesen als Referenz.
Die Anzahl der Bomben hängt vom Ausnahmevektor ab. Die häufigsten sind:
- ($ 008) Busfehler: 2 Bomben
- ($ 00c) Adressfehler: 3 Bomben
- ($ 010) Illegale Anweisung: 4 Bomben
Tor
Ihr Ziel ist es, ein Programm oder eine Funktion zu schreiben, die eine ASCII-Grafik solcher Atari-ST-Bomben druckt oder ausgibt.
Eingang
Eine Ganzzahl, die die Anzahl der anzuzeigenden Bomben angibt. Ihr Code muss die gebräuchlichsten Werte unterstützen: 2, 3 und 4. Weniger und / oder mehr Bomben zu unterstützen ist in Ordnung, aber weder erforderlich noch von einem Bonus abhängig.
Ausgabe
Die Originalbombe besteht aus einer 16x16-Pixel-Kachel, die hier sowohl in ASCII- als auch in Binärdarstellung dargestellt ist:
....##.......... 0000110000000000
.#.#..#......... 0101001000000000
.......#........ 0000000100000000
#..#....#....... 1001000010000000
..#...#####..... 0010001111100000
......#####..... 0000001111100000
....#########... 0000111111111000
...###########.. 0001111111111100
...###########.. 0001111111111100
..#############. 0011111111111110
..########.####. 0011111111011110
...#######.###.. 0001111111011100
...######.####.. 0001111110111100
....#########... 0000111111111000
.....#######.... 0000011111110000
.......###...... 0000000111000000
Bei dieser Herausforderung muss jede ASCII-Bombe zum besseren Rendern auf das Doppelte ihrer ursprünglichen Breite gedehnt werden. Daher besteht es aus 16 Zeilen mit 32 Zeichen, wobei ##
für "EIN" -Pixel zwei Leerzeichen für "AUS" -Pixel verwendet werden. Alle Bombenplättchen müssen nebeneinander liegen. Führende Leerzeichen sind verboten. Nachgestellte Leerzeichen sind ebenfalls verboten, mit Ausnahme derjenigen, die tatsächlich Teil des Bombenplättchens sind (dh die 31. und 32. Spalte), die vorhanden sein müssen . Sie dürfen nicht mehr als einen führenden Zeilenumbruch und nicht mehr als einen nachfolgenden Zeilenumbruch einfügen.
Beispiel
Nachfolgend finden Sie die Referenzausgabe für zwei Bomben, bei denen obligatorische Zeilenumbrüche als \n
und tolerierte zusätzliche Zeilenumbrüche als gekennzeichnet sind (\n)
:
(\n)
#### #### \n
## ## ## ## ## ## \n
## ## \n
## ## ## ## ## ## \n
## ########## ## ########## \n
########## ########## \n
################## ################## \n
###################### ###################### \n
###################### ###################### \n
########################## ########################## \n
################ ######## ################ ######## \n
############## ###### ############## ###### \n
############ ######## ############ ######## \n
################## ################## \n
############## ############## \n
###### ###### (\n)
(Natürlich können auch andere Zeilenumbruchformate wie \r
oder \r\n
verwendet werden.)
Regeln
Das ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes. Standardlücken sind verboten.