Weißrussland rushnyk

19

Wir haben bereits einige Herausforderungen mit der Nationalflagge: AU CH FI FR GB GB IS KR NP US ... Hier ist eine weitere, etwas fortgeschrittenere:

Geben Sie das dekorative Muster der belarussischen Nationalflagge als Matrix mit zwei unterschiedlichen Werten für Rot und Weiß zurück oder drucken Sie es aus .

Rushnyk

Wenn Ihre Sprache keine Matrizen unterstützt, verwenden Sie eine Liste mit Listen oder das nächstgelegene Äquivalent. Zusätzliches Leerzeichen ist auf allen Seiten zulässig. Die Matrix kann transponiert werden. Die Elemente können ein konsistentes Trennzeichen haben, ebenso wie die Zeilen, z. B. kann die Ausgabe JSON sein. Sie müssen die Version 2012 des Ornamentmusters verwenden, nicht die Versionen 1951 oder 1995. Das ist , also gewinnt die kürzeste Antwort pro Sprache.

Beispielausgabe:

....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
ngn
quelle

Antworten:

7

Stax , 68 Bytes

àÑΣ▒i╕7FF3xì¥╫Yb▌t╤y╡µåè0═↕h╗ΔDOü↔`◙■^>♀;∟Γ9→§Æ¼$ß⌡╫èj_┐;ø;¡²Ω☺┘4!P╛

Führen Sie es aus und debuggen Sie es

Gibt die vertikale Version 1für Weiß und 0Rot aus. Naiver Ansatz: Linkes oberes Viertel zusammendrücken, dann fertig.

wastl
quelle
4

Python 2 , 183 - 181 Bytes

S=[bin(int(''.join(w),36))[2:].rjust(31,'0')for w in zip(*[iter("RBRG5FDLAJ2O77MSE012OBJWJUSWDQ464UKNYZIE8JYGS0JRFOCIJY7U5F983X0LYW20WNTE")]*6)]
for s in S[:0:-1]+S:print s[:0:-1]+s

Probieren Sie es online!

Gibt die transponierte Version mit 0und 1für Weiß und Rot aus.

TFeld
quelle
Komprimiert dies die gesamte Wertekette für das Flag?
Raghu Ranganathan
@ RaghuRanganathan Nur ein Viertel. Das for s in S[:0:-1]+S:print s[:0:-1]+sverdoppelt die Zeilen und druckt jede Zeile doppelt
TFeld
3

Kohle, 93 89 81 Bytes

”{“↷B⦃¶¹¹|TQ⌊‽÷⪫Mg+℅§ºH·τP≔⁻⊗|Yω¤⁵⊗-κ�κb5Aωγ⎚I0ê﹪oζM⟲ºh⟲⮌#⎇s▶‴ψ◧≔◨◧⁺4U×m∧üF↑⬤”‖O¬

Meine erste Antwort auf Kohle! : D

Probieren Sie es online!

4 Bytes gespart, indem das Design eher horizontal als vertikal ausgegeben wurde (weniger Zeilenumbrüche).

Vielen Dank an @Neil für das Speichern von 8 Bytes!

Beta-Zerfall
quelle
‖BAkzeptiert mehrere Operanden. Einige Kombinationen haben sogar eine Einzelbyte-Codierung ( ¬und Lzum Beispiel).
Neil
Wenn Sie Leerzeichen anstelle von .s verwenden, sparen Sie außerdem einige Bytes, da Sie am Ende einer Zeile keine Leerzeichen benötigen.
Neil
(Ich weiß nicht, welche vertikal oder horizontal zu mehr Leerzeichen an den Zeilenenden führen wird).
Neil
Ich habe es versucht ‖B¬und es hilft nicht, weil das reflektierte Zeichenfolgenliteral ein zusätzliches Byte kostet, aber ‖BLes spart ein Byte, weil das zeilenumgekehrte Zeichenfolgenliteral dieselbe Byteanzahl hat.
Neil
Bei der vertikalen Ausgabe habe ‖BLich dagegen 83 Bytes und ‖B¬kann dies in 81 Bytes tun: Probieren Sie es online aus!
Neil
2

Python 2, 153 Bytes

00000000: 2363 6f64 696e 673a 4c31 0a66 6f72 2079  #coding:L1.for y
00000010: 2069 6e20 7261 6e67 6528 2d33 302c 3331   in range(-30,31
00000020: 293a 733d 666f 726d 6174 2869 6e74 2827  ):s=format(int('
00000030: 0137 ec80 937f f739 027d 7209 37e7 395c  .7.....9.}r.7.9\
00000040: 30cc ef73 108c 1fff fe41 b14e fb14 1bfe  0..s.....A.N....
00000050: d364 09ce f7ff fc81 18c6 c811 8cec 8111  .d..............
00000060: 272e 656e 636f 6465 2827 6865 7827 295b  '.encode('hex')[
00000070: 6162 7328 7929 3a3a 3331 5d2c 3136 292c  abs(y)::31],16),
00000080: 2730 3132 6227 293b 7072 696e 7420 732b  '012b');print s+
00000090: 735b 2d32 3a3a 2d31 5d                   s[-2::-1]

Probieren Sie es online!

Lynn
quelle
2

Perl 5 , 121 Bytes

Verwendet 1für weiße Pixel und 0für rot.

$_=unpack"B*",'ñæÄxããÄvñí·Ž2IŽ=·ñæÀxàƒxoá|3†øÞ<òà';say for(@a=map{s/.$//r.reverse}/.{12}/g),pop@a&&reverse@a

Dieses Skript enthält nicht druckbare Zeichen, sodass der unten stehende Bestätigungslink einen umkehrbaren Hexdump enthält.

Probieren Sie es online!
Überprüfung der Codelänge .

Erläuterung

Das obere Viertel des Musters wird innerhalb des Binärblobs gespeichert. Dabei wird nur die Perl- packFunktion mit der ursprünglichen Binärzeichenfolge verwendet (nach dem Ersetzen von .und #durch 1und 0). Dies ermöglicht es uns, 8 Bits des Musters in jedem Byte zu speichern. Sobald wir die Daten entpackt haben, haben wir die lange Binärzeichenfolge, die wir in Abschnitte der Länge 12 aufteilen, mit der Rückseite verketten (mit Ausnahme des duplizierten mittleren Zeichens) und dann die Liste der Abschnitte durchlaufen (mit der Rückseite verkettet) der Liste, mit Ausnahme des duplizierten mittleren Elements) und geben Sie sie alle mit aus say, wodurch eine neue Zeile hinzugefügt wird.

Dom Hastings
quelle