Білоруський рушник


19

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

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

рушник

Якщо ваша мова не підтримує матриць, використовуйте список списків або найближчий еквівалент. Додатковий пробіл дозволений з усіх боків. Матрицю можна транспонувати. Елементи можуть мати послідовний роздільник, а також рядки, наприклад, вихід може бути JSON. Ви повинні використовувати версію орнаменту 2012 року, а не версії 1951 чи 1995 років. Це , тому найкоротша відповідь на кожну мову виграє.

Вибірка зразка:

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

Відповіді:



4

Пітон 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.