Bielorrússia rushnyk

19

Já temos alguns desafios de bandeira nacional: AU CH FI FR GB GB É KR NP US ... Aqui está outro, um pouco mais avançado:

Retorne ou imprima o padrão decorativo da bandeira nacional da Bielorrússia como uma matriz de dois valores distintos para vermelho e branco.

rushnyk

Se o seu idioma não suportar matrizes, use uma lista de listas ou o equivalente mais próximo. Espaço em branco extra é permitido por todos os lados. A matriz pode ser transposta. Os elementos podem ter um separador consistente, assim como as linhas, por exemplo, a saída pode ser JSON. Você deve usar a versão 2012 do padrão de ornamento, não as versões de 1951 ou 1995. Isso é , então a resposta mais curta por idioma vence.

Saída de amostra:

....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
ngn
fonte

Respostas:

7

Stax , 68 bytes

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

Execute e depure

Emite versão vertical, 1para branco, 0para vermelho. Abordagem ingênua: comprima o quarto superior esquerdo e conclua.

wastl
fonte
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

Experimente online!

Saídas versão transposta, usando 0e 1para branco e vermelho.

TFeld
fonte
Isso comprime toda a cadeia de valores do sinalizador?
Raghu Ranganathan
@RaghuRanganathan Apenas um quarto. A for s in S[:0:-1]+S:print s[:0:-1]+sdobra as linhas e imprimir cada linha dobrou
TFeld
3

JavaScript (ES6), 164 bytes

Saída transposta. Usa 0para branco, 1para vermelho.

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):''

Experimente online! (saída pretificada)

Usar Buffer () no Node.js economiza 1 byte.

Arnauld
fonte
3

SOGL V0.12 , 61 56 bytes

 №α⁶U-┼°jōIΤ$ΣΧρ←FVξÆ⅝{VqM┼οYΠ!↕οΩÆ.χg±└¶Σ,Cy′┌“2─±6«n╬,

Experimente aqui!

dzaima
fonte
3

Carvão, 93 89 81 bytes

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

Minha primeira resposta de carvão! : D

Experimente online!

Salva 4 bytes, exibindo o design horizontalmente e não verticalmente (menos novas linhas).

Obrigado a @Neil por salvar 8 bytes!

Beta Decay
fonte
‖Baceita múltiplos operandos. Algumas combinações têm até uma codificação de byte único ( ¬e, Lpor exemplo).
Neil
Além disso, o uso de espaços em vez de .s deve economizar alguns bytes, pois você não precisa de espaços no final de uma linha.
Neil
(Não sei qual das opções vertical ou horizontalmente resultará em mais espaços no final das linhas).
Neil
Eu tentei ‖B¬e não ajuda porque o literal da string refletida custa um byte extra, mas ‖BLsalva um byte porque o literal da string invertida é a mesma contagem de bytes.
911 Neil
Por outro lado, para saída vertical, ‖BLchega a 83 bytes e ‖B¬pode ser feito em 81 bytes: Experimente online!
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]

Experimente online!

Lynn
fonte
2

Perl 5 , 121 bytes

Usa 1para pixels brancos e 0vermelhos.

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

Este script contém caracteres não imprimíveis, portanto, um hexdump reversível é incluído no link de verificação abaixo.

Experimente online!
Verificação do comprimento do código .

Explicação

O quarto superior do padrão é armazenado no blob binário. Isso apenas usa a packfunção do Perl com a string binária original (após a substituição .e #com 1e 0). Isso nos permite armazenar 8 bits do padrão em cada byte. Depois de descompactar os dados, temos a cadeia binária longa, que dividimos em seções de comprimento 12, concatenamos com o reverso (exceto o caractere do meio duplicado) e, em seguida, fazemos um loop sobre a lista de seções (concatenadas com o reverso da lista, exceto o elemento do meio duplicado) e produza todos eles usando say, o que adiciona uma nova linha.

Dom Hastings
fonte