Bielorrusia rushnyk

19

Ya tenemos bastantes desafíos de bandera nacional: AU CH FI FR GB GB IS KR NP US ... Aquí hay otro, algo más avanzado:

Devuelva o imprima el patrón decorativo de la bandera nacional de Bielorrusia como una matriz de dos valores distintos para rojo y blanco.

rushnyk

Si su idioma no admite matrices, use una lista de listas o el equivalente más cercano. Se permite espacio en blanco adicional en todos los lados. La matriz se puede transponer. Los elementos pueden tener un separador consistente, y también las filas, por ejemplo, la salida puede ser JSON. Debe usar la versión 2012 del patrón de adorno, no las versiones de 1951 o 1995. Este es el , por lo que gana la respuesta más corta por idioma.

Salida de muestra:

....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
ngn
fuente

Respuestas:

7

Stax , 68 bytes

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

Ejecutar y depurarlo

Salidas versión vertical, 1para blanco, 0para rojo. Enfoque ingenuo: comprima el cuarto superior izquierdo, luego complete.

wastl
fuente
4

Python 2 , 183181 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

Pruébalo en línea!

Salidas de la versión transpuesta, utilizando 0y 1para blanco y rojo.

TFeld
fuente
¿Comprime esto la cadena completa de valores para la bandera?
Raghu Ranganathan
@RaghuRanganathan Solo una cuarta parte. El for s in S[:0:-1]+S:print s[:0:-1]+sduplica las líneas, e imprimir cada línea se duplicó
TFeld
3

JavaScript (ES6), 164 bytes

Salida transpuesta. Usos 0para blanco, 1para rojo.

f=(x=y=0)=>y<61?x>22?`
`+f(!++y):(-~'o`xb[FMMf[MM[Fxbo`cCMMZZMMcCo`xb{F}N~~N}}{[wH{?]@NbfvB}H{Wwooa'.charCodeAt((y>30?60-y:y)*2+(X=x>11?22-x:x)/6)>>X%6&1)+f(x+1):''

Pruébalo en línea! (salida prettified)

El uso de Buffer () en Node.js ahorra 1 byte.

Arnauld
fuente
3

Carbón, 93 89 81 bytes

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

Mi primera respuesta de carbón! :RE

Pruébalo en línea!

Ahorró 4 bytes al generar el diseño horizontalmente en lugar de verticalmente (menos líneas nuevas).

¡Gracias a @Neil por guardar 8 bytes!

Decaimiento Beta
fuente
‖Bacepta múltiples operandos, algunas combinaciones incluso tienen una codificación de un solo byte ( ¬y Lpor ejemplo).
Neil
Además, el uso de espacios en lugar de .s debería ahorrarle unos pocos bytes, ya que no necesita espacios al final de una línea.
Neil
(No sé cuál vertical u horizontalmente dará como resultado más espacios en los extremos de las líneas).
Neil
Lo intenté ‖B¬y no ayuda porque el literal de cadena reflejado cuesta un byte adicional, pero ‖BLguarda un byte porque el literal de cadena de línea invertida es el mismo número de bytes.
Neil
Por otro lado, para la salida vertical, ‖BLme lleva a 83 bytes, y ‖B¬se puede hacer en 81 bytes: ¡ Pruébelo en línea!
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]

Pruébalo en línea!

Lynn
fuente
2

Perl 5 , 121 bytes

Usos 1para píxeles blancos y 0para rojo.

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

Este script contiene caracteres no imprimibles, por lo que se incluye un volcado hexagonal reversible en el siguiente enlace de verificación.

Pruébalo en línea!
Verificación de la longitud del código .

Explicación

El cuarto superior del patrón se almacena dentro del blob binario. Esto solo usa la packfunción de Perl con la cadena binaria original (después de reemplazar .y #con 1y 0). Esto nos permite almacenar 8 bits del patrón en cada byte. Una vez que desempaquetamos los datos, tenemos la cadena binaria larga, que desglosamos en secciones de longitud 12, concatenamos con el reverso (excepto el carácter central duplicado) y luego recorremos la lista de secciones (concatenados con el reverso de la lista, excepto el elemento central duplicado) y generarlos todos utilizando say, lo que agrega una nueva línea.

Dom Hastings
fuente