У нас уже немало проблем с национальным флагом: AU CH FI FR GB GB IS KR NP US ... Вот еще один, несколько более продвинутый:
Верните или распечатайте орнамент из национального флага Беларуси в виде матрицы двух разных значений для красного и белого.
Если ваш язык не поддерживает матрицы, используйте список списков или ближайший аналог. Дополнительные пробелы разрешены со всех сторон. Матрица может быть транспонирована. Элементы могут иметь согласованный разделитель, как и строки, например, выходные данные могут быть в формате JSON. Вы должны использовать версию орнамента 2012 года, а не версии 1951 или 1995 года. Это код-гольф , поэтому выигрывает самый короткий ответ на каждый язык.
Образец вывода:
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..#######.....#######..
.#########...#########.
#######################
####...#########...####
.#####..#######..#####.
..###....#####....###..
#..#....#######....#..#
.......####.####.......
#.....####...####.....#
##...####..#..####...##
###.####.......####.###
.######..#...#..######.
..####...##.##...####..
...###....###....###...
....##.#...#...#.##....
...###....###....###...
..####...##.##...####..
.######..#...#..######.
###.####.......####.###
##...####..#..####...##
#.....####...####.....#
.......####.####.......
#..#....#######....#..#
..###....#####....###..
.#####..#######..#####.
####...#########...####
#######################
.#########...#########.
..#######.....#######..
#..#####...#...#####..#
....###....#....###....
..#..#..#.....#..#..#..
.###...###...###...###.
##.##.##.##.##.##.##.##
.###...###...###...###.
..#..#..#.....#..#..#..
....###....#....###....
#..#####...#...#####..#
..###.###.....###.###..
.###...###...###...###.
###..#..###.###..#..###
.###...###...###...###.
..###.###.....###.###..
#..#####...#...#####..#
....###....#....###....
for s in S[:0:-1]+S:print s[:0:-1]+s
Удваивает линии, и печать каждой строки в два разаJavaScript (ES6), 164 байта
Транспонированный выход. Использует
0
для белого,1
для красного.Попробуйте онлайн! (предварительный вывод)
Использование Buffer () в Node.js экономит 1 байт.
источник
SOGL V0.12 ,
6156 байтПопробуй здесь!
источник
Древесный уголь,
938981 байтМой первый угольный ответ! : D
Попробуйте онлайн!
Сохранено 4 байта путем вывода дизайна по горизонтали, а не по вертикали (меньше новых строк).
Спасибо @Neil за сохранение 8 байт!
источник
‖B
принимает несколько операндов, некоторые комбинации даже имеют однобайтовую кодировку (¬
и,L
например)..
s должно сэкономить вам несколько байтов, так как вам не нужны пробелы в конце строки.‖B¬
и это не помогает, потому что отраженный строковый литерал стоит дополнительный байт, но‖BL
действительно сохраняет байт, потому что строковый литерал с обращенной строкой имеет то же число байтов.‖BL
я получаю 83 байта, и это‖B¬
может быть сделано в 81 байте: попробуйте это онлайн!Python 2, 153 байта
Попробуйте онлайн!
источник
Perl 5 , 121 байт
Используется
1
для белых пикселей и0
для красного.Этот скрипт содержит непечатаемые символы, поэтому обратимый шестнадцатеричный код включен в ссылку для проверки ниже.
Попробуйте онлайн!
Проверка длины кода .
объяснение
Верхняя четверть шаблона хранится в двоичном двоичном объекте. Это просто использует
pack
функцию Perl с исходной двоичной строкой (после замены.
и#
на1
и0
). Это позволяет нам хранить 8 битов шаблона в каждом байте. После того, как мы распаковали данные, у нас есть длинная двоичная строка, которую мы разбиваем на секции длиной 12, объединяем их с обратным (за исключением дублированного среднего символа) и затем зацикливаем список разделов (объединяемых с обратным списка, за исключением дублированного среднего элемента) и выведите их все, используяsay
, что добавляет новую строку.источник