Wprowadzenie
Atari ST był dość popularny komputer osobisty od połowy lat 80-tych do początku lat 90-era, zasilany przez Motorola 68000 mikroprocesor. Na tym komputerze domyślnym zachowaniem systemu operacyjnego w przypadku nieprzechwyconych wyjątków procesora było wyświetlanie rzędu bomb na ekranie, jak pokazano na poniższym obrazku:
Źródło: https://commons.wikimedia.org/wiki/File:Row_of_bombs.png
Uwaga: W zależności od wersji systemu operacyjnego grafika bomby może się nieznacznie różnić. Ale weźmy to jako odniesienie.
Liczba bomb zależy od wektora wyjątku, z których najczęstszymi są:
- (008 $) Błąd autobusu: 2 bomby
- (00c $) Błąd adresu: 3 bomby
- (010 USD) Nielegalna instrukcja: 4 bomby
Cel
Twoim celem jest napisanie programu lub funkcji, która drukuje lub generuje sztukę ASCII takich bomb Atari ST.
Wejście
Liczba całkowita reprezentująca liczbę bomb do wyświetlenia. Twój kod musi obsługiwać najczęstsze wartości: 2, 3 i 4. Wspieranie mniejszej i / lub większej liczby bomb jest w porządku, ale nie jest ani wymagane, ani nie podlega premii.
Wynik
Oryginalna bomba składa się z kafelka 16 x 16 pikseli, reprezentowanego tutaj zarówno w ASCII, jak i binarnie:
....##.......... 0000110000000000
.#.#..#......... 0101001000000000
.......#........ 0000000100000000
#..#....#....... 1001000010000000
..#...#####..... 0010001111100000
......#####..... 0000001111100000
....#########... 0000111111111000
...###########.. 0001111111111100
...###########.. 0001111111111100
..#############. 0011111111111110
..########.####. 0011111111011110
...#######.###.. 0001111111011100
...######.####.. 0001111110111100
....#########... 0000111111111000
.....#######.... 0000011111110000
.......###...... 0000000111000000
W tym wyzwaniu każda bomba ASCII musi zostać rozciągnięta do dwukrotności swojej pierwotnej szerokości w celu lepszego renderowania. Dlatego będzie się składał z 16 wierszy po 32 znaki, przy użyciu ##
pikseli „ON” i dwóch spacji dla pikseli „OFF”. Wszystkie płytki bombowe muszą być ułożone obok siebie. Wiodące miejsca są zabronione. Końcowe spacje są również zabronione, z wyjątkiem tych, które faktycznie są częścią płytki bomby (tj. 31. i 32. kolumna), które muszą być obecne. Możesz dołączyć nie więcej niż jeden wiodący podział linii i nie więcej niż jeden końcowy podział linii.
Przykład
Poniżej przedstawiono dane wyjściowe dla dwóch bomb, w których obowiązkowe przerwy w linii są oznaczone jako, \n
a tolerowane dodatkowe przerwy w linii są oznaczone jako (\n)
:
(\n)
#### #### \n
## ## ## ## ## ## \n
## ## \n
## ## ## ## ## ## \n
## ########## ## ########## \n
########## ########## \n
################## ################## \n
###################### ###################### \n
###################### ###################### \n
########################## ########################## \n
################ ######## ################ ######## \n
############## ###### ############## ###### \n
############ ######## ############ ######## \n
################## ################## \n
############## ############## \n
###### ###### (\n)
(Oczywiście inne formaty podziału linii, takie jak \r
lub, \r\n
mogą być również używane).
Zasady
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach. Standardowe luki są zabronione.