introduzione
L' Atari ST era un personal computer piuttosto popolare dalla metà degli anni '80 ai primi anni '90, alimentato da un microprocessore Motorola 68000. Su questa macchina, il comportamento predefinito del sistema operativo per le eccezioni della CPU non rilevate era la visualizzazione di una fila di bombe sullo schermo, come mostrato nella figura seguente:
Fonte: https://commons.wikimedia.org/wiki/File:Row_of_bombs.png
NB: a seconda della versione del sistema operativo, la grafica della bomba può variare leggermente. Ma prendiamo questo come riferimento.
Il numero di bombe dipende dal vettore delle eccezioni, le più comuni sono:
- ($ 008) Errore bus: 2 bombe
- ($ 00c) Errore indirizzo: 3 bombe
- ($ 010) Istruzione illegale: 4 bombe
Obbiettivo
Il tuo obiettivo è quello di scrivere un programma o una funzione che stampi o produca un'arte ASCII di tali bombe Atari ST.
Ingresso
Un numero intero che rappresenta il numero di bombe da visualizzare. Il codice deve supportare i valori più comuni: 2, 3 e 4. Il supporto di meno e / o più bombe va bene, ma non è né richiesto né soggetto a bonus.
Produzione
La bomba originale è costituita da una tessera di 16x16 pixel, qui rappresentata sia in formato ASCII che binario:
....##.......... 0000110000000000
.#.#..#......... 0101001000000000
.......#........ 0000000100000000
#..#....#....... 1001000010000000
..#...#####..... 0010001111100000
......#####..... 0000001111100000
....#########... 0000111111111000
...###########.. 0001111111111100
...###########.. 0001111111111100
..#############. 0011111111111110
..########.####. 0011111111011110
...#######.###.. 0001111111011100
...######.####.. 0001111110111100
....#########... 0000111111111000
.....#######.... 0000011111110000
.......###...... 0000000111000000
In questa sfida, ogni bomba ASCII deve essere allungata al doppio della sua larghezza originale per un rendering migliore. Pertanto, sarà composto da 16 righe di 32 caratteri, usando ##
per i pixel "ON" e due spazi per i pixel "OFF". Tutte le tessere bomba devono essere affiancate. Gli spazi guida sono vietati. Sono inoltre vietati gli spazi finali, ad eccezione di quelli che fanno effettivamente parte della tessera bomba (ovvero la 31a e la 32a colonna) che devono essere presenti. È possibile includere non più di un'interruzione di riga iniziale e non più di un'interruzione di riga finale.
Esempio
Di seguito è riportato l'output di riferimento per due bombe, in cui le interruzioni di riga obbligatorie sono contrassegnate come \n
e le interruzioni di riga aggiuntive tollerate sono contrassegnate come (\n)
:
(\n)
#### #### \n
## ## ## ## ## ## \n
## ## \n
## ## ## ## ## ## \n
## ########## ## ########## \n
########## ########## \n
################## ################## \n
###################### ###################### \n
###################### ###################### \n
########################## ########################## \n
################ ######## ################ ######## \n
############## ###### ############## ###### \n
############ ######## ############ ######## \n
################## ################## \n
############## ############## \n
###### ###### (\n)
(Naturalmente, anche altri formati di interruzione di riga come \r
o \r\n
possono essere utilizzati altrettanto bene.)
Regole
Questo è code-golf, quindi vince la risposta più breve in byte. Sono vietate le scappatoie standard.