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:

....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....

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.


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.


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.



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!


‖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!


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.