Белорусский рушник


19

У нас уже немало проблем с национальным флагом: AU CH FI FR GB GB IS KR NP US ... Вот еще один, несколько более продвинутый:

Верните или распечатайте орнамент из национального флага Беларуси в виде матрицы двух разных значений для красного и белого.

рушник

Если ваш язык не поддерживает матрицы, используйте список списков или ближайший аналог. Дополнительные пробелы разрешены со всех сторон. Матрица может быть транспонирована. Элементы могут иметь согласованный разделитель, как и строки, например, выходные данные могут быть в формате JSON. Вы должны использовать версию орнамента 2012 года, а не версии 1951 или 1995 года. Это , поэтому выигрывает самый короткий ответ на каждый язык.

Образец вывода:

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

Ответы:


7

Stax , 68 байт

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

Запустите и отладьте его

Выходы вертикальные, 1для белого, 0для красного. Наивный подход: сжать верхнюю левую четверть, затем завершить.


4

Python 2 , 183 181 байт

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

Попробуйте онлайн!

Выводится транспонированная версия, используя 0и 1для белого и красного.


Сжимает ли это всю строку значений для флага?
Рагху Ранганатхан

@RaghuRanganathan Только четверть. for s in S[:0:-1]+S:print s[:0:-1]+sУдваивает линии, и печать каждой строки в два раза
TFeld

3

JavaScript (ES6), 164 байта

Транспонированный выход. Использует 0для белого, 1для красного.

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

Попробуйте онлайн! (предварительный вывод)

Использование Buffer () в Node.js экономит 1 байт.



3

Древесный уголь, 93 89 81 байт

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

Мой первый угольный ответ! : D

Попробуйте онлайн!

Сохранено 4 байта путем вывода дизайна по горизонтали, а не по вертикали (меньше новых строк).

Спасибо @Neil за сохранение 8 байт!


‖Bпринимает несколько операндов, некоторые комбинации даже имеют однобайтовую кодировку ( ¬и, Lнапример).
Нил

Кроме того, использование пробелов вместо .s должно сэкономить вам несколько байтов, так как вам не нужны пробелы в конце строки.
Нил

(Я не знаю, что из вертикального или горизонтального приведет к большему количеству пробелов на концах линий).
Нил

Я попытался, ‖B¬и это не помогает, потому что отраженный строковый литерал стоит дополнительный байт, но ‖BLдействительно сохраняет байт, потому что строковый литерал с обращенной строкой имеет то же число байтов.
Нил

С другой стороны, для вертикального вывода ‖BLя получаю 83 байта, и это ‖B¬может быть сделано в 81 байте: попробуйте это онлайн!
Нил

2

Python 2, 153 байта

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]

Попробуйте онлайн!


2

Perl 5 , 121 байт

Используется 1для белых пикселей и 0для красного.

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

Этот скрипт содержит непечатаемые символы, поэтому обратимый шестнадцатеричный код включен в ссылку для проверки ниже.

Попробуйте онлайн!
Проверка длины кода .

объяснение

Верхняя четверть шаблона хранится в двоичном двоичном объекте. Это просто использует packфункцию Perl с исходной двоичной строкой (после замены .и #на 1и 0). Это позволяет нам хранить 8 битов шаблона в каждом байте. После того, как мы распаковали данные, у нас есть длинная двоичная строка, которую мы разбиваем на секции длиной 12, объединяем их с обратным (за исключением дублированного среднего символа) и затем зацикливаем список разделов (объединяемых с обратным списка, за исключением дублированного среднего элемента) и выведите их все, используя say, что добавляет новую строку.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.