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.
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 é código-golfe , então a resposta mais curta por idioma vence.
Saída de amostra:
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
for s in S[:0:-1]+S:print s[:0:-1]+s
dobra as linhas e imprimir cada linha dobrouJavaScript (ES6), 164 bytes
Saída transposta. Usa
0
para branco,1
para vermelho.Experimente online! (saída pretificada)
Usar Buffer () no Node.js economiza 1 byte.
fonte
SOGL V0.12 ,
6156 bytesExperimente aqui!
fonte
Carvão,
938981 bytesMinha 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!
fonte
‖B
aceita múltiplos operandos. Algumas combinações têm até uma codificação de byte único (¬
e,L
por exemplo)..
s deve economizar alguns bytes, pois você não precisa de espaços no final de uma linha.‖B¬
e não ajuda porque o literal da string refletida custa um byte extra, mas‖BL
salva um byte porque o literal da string invertida é a mesma contagem de bytes.‖BL
chega a 83 bytes e‖B¬
pode ser feito em 81 bytes: Experimente online!Python 2, 153 bytes
Experimente online!
fonte
Perl 5 , 121 bytes
Usa
1
para pixels brancos e0
vermelhos.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
pack
função do Perl com a string binária original (após a substituição.
e#
com1
e0
). 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 usandosay
, o que adiciona uma nova linha.fonte