Introdução
O Atari ST era um computador pessoal bastante popular entre meados dos anos 80 e início dos anos 90, alimentado por um microprocessador Motorola 68000. Nesta máquina, o comportamento padrão do sistema operacional para exceções de CPU não capturadas era exibir uma linha de bombas na tela, conforme mostrado na figura a seguir:
Fonte: https://commons.wikimedia.org/wiki/File:Row_of_bombs.png
Nota: Dependendo da versão do sistema operacional, os gráficos da bomba podem variar um pouco. Mas vamos tomar este como referência.
O número de bombas depende do vetor de exceção, sendo as mais comuns:
- ($ 008) Erro de barramento: 2 bombas
- ($ 00c) Erro de endereço: 3 bombas
- ($ 010) Instrução ilegal: 4 bombas
Objetivo
Seu objetivo é escrever um programa ou função que imprima ou produza uma arte ASCII dessas bombas Atari ST.
Entrada
Um número inteiro que representa o número de bombas a serem exibidas. Seu código deve suportar os valores mais comuns: 2, 3 e 4. Suportar menos e / ou mais bombas é bom, mas não é necessário nem está sujeito a um bônus.
Resultado
A bomba original consiste em um bloco de 16x16 pixels, representado aqui em ASCII e binário:
....##.......... 0000110000000000
.#.#..#......... 0101001000000000
.......#........ 0000000100000000
#..#....#....... 1001000010000000
..#...#####..... 0010001111100000
......#####..... 0000001111100000
....#########... 0000111111111000
...###########.. 0001111111111100
...###########.. 0001111111111100
..#############. 0011111111111110
..########.####. 0011111111011110
...#######.###.. 0001111111011100
...######.####.. 0001111110111100
....#########... 0000111111111000
.....#######.... 0000011111110000
.......###...... 0000000111000000
Nesse desafio, cada bomba ASCII deve ser esticada até o dobro da largura original para obter uma melhor renderização. Portanto, ele consistirá em 16 linhas de 32 caracteres, usando ##
pixels 'ON' e dois espaços para pixels 'OFF'. Todas as peças da bomba devem ser colocadas lado a lado. Espaços principais são proibidos. Espaços de fuga também são proibidos, exceto aqueles que realmente fazem parte do bloco de bombas (ou seja, as 31ª e 32ª colunas) que devem estar presentes. Você pode incluir não mais que uma quebra de linha inicial e não mais que uma quebra de linha final.
Exemplo
Abaixo está a saída de referência para duas bombas, em que as quebras de linha obrigatórias são marcadas como \n
e as quebras de linha extras toleradas são marcadas como (\n)
:
(\n)
#### #### \n
## ## ## ## ## ## \n
## ## \n
## ## ## ## ## ## \n
## ########## ## ########## \n
########## ########## \n
################## ################## \n
###################### ###################### \n
###################### ###################### \n
########################## ########################## \n
################ ######## ################ ######## \n
############## ###### ############## ###### \n
############ ######## ############ ######## \n
################## ################## \n
############## ############## \n
###### ###### (\n)
(Obviamente, outros formatos de quebra de linha, como \r
ou também \r\n
podem ser usados.)
Regras
Isso é código-golfe, então a resposta mais curta em bytes vence. As brechas padrão são proibidas.