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 .
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 Code-Golf , also gewinnt die kürzeste Antwort pro Sprache.
Beispielausgabe:
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
for s in S[:0:-1]+S:print s[:0:-1]+s
verdoppelt die Zeilen und druckt jede Zeile doppeltJavaScript (ES6), 164 Byte
Transponierte Ausgabe. Verwendet
0
für Weiß,1
für Rot.Probieren Sie es online! (schöne Ausgabe)
Durch die Verwendung von Buffer () in Node.js wird 1 Byte gespart.
quelle
SOGL V0.12 ,
6156 BytesProbieren Sie es hier aus!
quelle
Kohle,
938981 BytesMeine 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!
quelle
‖B
Akzeptiert mehrere Operanden. Einige Kombinationen haben sogar eine Einzelbyte-Codierung (¬
undL
zum Beispiel)..
s verwenden, sparen Sie außerdem einige Bytes, da Sie am Ende einer Zeile keine Leerzeichen benötigen.‖B¬
und es hilft nicht, weil das reflektierte Zeichenfolgenliteral ein zusätzliches Byte kostet, aber‖BL
es spart ein Byte, weil das zeilenumgekehrte Zeichenfolgenliteral dieselbe Byteanzahl hat.‖BL
ich dagegen 83 Bytes und‖B¬
kann dies in 81 Bytes tun: Probieren Sie es online aus!Python 2, 153 Bytes
Probieren Sie es online!
quelle
Perl 5 , 121 Bytes
Verwendet
1
für weiße Pixel und0
für rot.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-
pack
Funktion mit der ursprünglichen Binärzeichenfolge verwendet (nach dem Ersetzen von.
und#
durch1
und0
). 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 aussay
, wodurch eine neue Zeile hinzugefügt wird.quelle