Mamy już kilka wyzwań z flagami narodowymi: AU CH FI FR GB GB IS KR NP US ... Oto kolejna, nieco bardziej zaawansowana:
Zwróć lub wydrukuj dekoracyjny wzór z flagi narodowej Białorusi jako matrycę dwóch różnych wartości dla czerwieni i bieli.
Jeśli twój język nie obsługuje matryc, użyj listy list lub najbliższego odpowiednika. Dodatkowa spacja jest dozwolona ze wszystkich stron. Matryca może być transponowana. Elementy mogą mieć spójny separator, podobnie jak wiersze, np. Wyjściem może być JSON. Musisz użyć wersji 2012 wzoru wzoru, a nie wersji z 1951 lub 1995 roku. To jest golf golfowy , więc wygrywa najkrótsza odpowiedź na język.
Przykładowe dane wyjściowe:
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
for s in S[:0:-1]+S:print s[:0:-1]+s
Podwaja linie i wydrukować każdy wiersz podwoiłaJavaScript (ES6), 164 bajty
Wyjście transponowane. Używa
0
białego,1
czerwonego.Wypróbuj online! (prettified output)
Użycie Buffer () w Node.js pozwala zaoszczędzić 1 bajt.
źródło
SOGL V0.12 ,
6156 bajtówWypróbuj tutaj!
źródło
Węgiel drzewny,
938981 bajtówMoja pierwsza odpowiedź na węgiel drzewny! :RE
Wypróbuj online!
Zaoszczędzono 4 bajty, wysyłając projekt w poziomie zamiast w pionie (mniej nowych linii).
Dzięki @Neil za oszczędność 8 bajtów!
źródło
‖B
akceptuje wiele operandów, niektóre kombinacje mają nawet kodowanie jednobajtowe (¬
iL
na przykład)..
s powinno zaoszczędzić kilka bajtów, ponieważ nie potrzebujesz spacji na końcu linii.‖B¬
i to nie pomaga, ponieważ odzwierciedlony ciąg liter kosztuje dodatkowy bajt, ale‖BL
oszczędza bajt, ponieważ literał ciągów z odwróconą linią ma tę samą liczbę bajtów.‖BL
dostaje mnie do 83 bajtów i‖B¬
można to zrobić w 81 bajtach: Wypróbuj online!Python 2, 153 bajty
Wypróbuj online!
źródło
Perl 5 , 121 bajtów
Wykorzystuje
1
białe piksele i0
czerwone.Ten skrypt zawiera znaki niedrukowalne, więc odwracalny zrzut heksowy znajduje się w linku weryfikacyjnym poniżej.
Wypróbuj online!
Weryfikacja długości kodu .
Wyjaśnienie
Górna ćwiartka wzoru jest przechowywana w binarnym obiekcie blob. To po prostu używa
pack
funkcji Perla z oryginalnym ciągiem binarnym (po zamianie.
oraz za#
pomocą1
i0
). To pozwala nam przechowywać 8 bitów wzoru w każdym bajcie. Po rozpakowaniu danych mamy długi ciąg binarny, który dzielimy na sekcje o długości 12, łączymy z odwrotnością (z wyjątkiem zduplikowanego znaku środkowego), a następnie zapętlamy listę sekcji (połączoną z odwrotnością listy, z wyjątkiem zduplikowanego elementu środkowego) i wypisz je wszystkie za pomocąsay
, co dodaje nowy wiersz.źródło