Есть сатирическая песня под названием Little Boxes , первоначально написанная Malvina Reynolds, о пригородном разрастании, в которой есть следующие тексты:
Маленькие шкатулки на склоне холма,
Маленькие шкатулки из клеенки,
Маленькие шкатулки на склоне холма,
Маленькие шкатулки все тоже самое.
Есть зеленый и розовый
И синий и желтый,
И все они сделаны из липкой
и все они выглядят одинаково.
Ваша задача здесь, учитывая целочисленный ввод, n>1
который представляет размер дома, вывести четыре «маленьких коробочки», используя следующие цвета (в нотации 0xRRGGBB):
Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00
Если ваша конкретная консоль не имеет этих точных цветов, вы можете использовать ближайший доступный (например, escape-коды ANSI).
Дома построены с n
_
изображением пола и линии крыши. Они окружены n/2
(округленными) |
символами, представляющими стены. Крыши всегда2
высокие и две /
на левом краю, две \
на правом краю и n-2
-
представляют вершину крыши. Поскольку дома становятся больше, сравнительный размер крыши становится меньше; это предназначено.
Вот дом размером 2
:
/\
/__\
|__|
Вот размер 3
:
/-\
/___\
| |
|___|
Вот размер 7
:
/-----\
/_______\
| |
| |
| |
|_______|
Таким образом, учитывая вклад 7
, выведите четыре дома размером, 7
как описано выше, с первым зеленым, вторым розовым (пурпурным), третьим синим и четвертым желтым. Вывод цветов в этом порядке важен.
Пример изображения размера 3
:
правила
- Дома могут быть горизонтальными или вертикальными, если между ними существует четкое разделение.
- Лидирующие / завершающие символы новой строки или другие пробелы являются необязательными, при условии, что дома выстроены в линию соответствующим образом.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Вывод может быть на консоль, сохранен как изображение и т. Д.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
источник
0
?#RGB
цветовыми кодами CSS.Python 2 ,
123121119111109108 байт\33
)input()
вместо определения функцииstr(90+n)
с0<=n<=9
является"9%s"%n
два-три байта с использованием форматирования строки, а не конкатенации строкПопробуйте онлайн!
Использует коды выхода ANSI для раскраски домов.
источник
90
и2,5,4,3
подведено итоговое объединение.Excel VBA, 243 байта
Функция анонимного непосредственного окна VBE, которая принимает входные данные
A1
и выводит их в диапазонA2:A5
Выход
источник
Japt ,
7976747372 байтаПопробуйте (откройте консоль браузера, прежде чем нажать «Выполнить»).
Спасибо ETH за помощь в тестировании прошлой ночью, пока я работал над этим на моем телефоне.
объяснение
Неявный ввод целого числа
U
Сначала мы строим массив из трехзначных шестнадцатеричных цветов для отображения. Charcode из
²
178 так3#²
дает нам 3178. Мы превращаем , что в строку базовой 2 с ,¤
а затем заменить все вхождения1
сf
.ò3
разбивает строку на массив строк длиной 3 иw
переворачивает этот массив.(Мне нужно найти способ как-то сократить это.)
Мы отображаем массив
£
сX
использованием текущего элемента иOl
регистрируем его в консоли. Мы передадим две строки, одна из которых содержит дом, а другая - CSS.Вторая строка построена с использованием
i
предваренияX
сжатой строкойcolor:#
.%c
Говорит консоль , чтобы использовать вторую строку в CSS. Верхняя строка дома строится путем повторения (ç
) времени-
символа,U
а затем вырезания его из второго элемента (с индексами 0) с помощью¤
. Эти фигурные скобки служат своего рода ярлыком для объединения строк.Вторая строка строится аналогичным образом, на этот раз повторяя время
_
символовU
.Тело дома строится, сначала
|
дважды повторяя символ с²
последующим вставлением пробела несколькоU
раз в эту строку с индексом 1. Затем полученная строка добавляется к новойR
строке ( ), и эта строка повторяется несколькоU/2-0.5
раз.Наконец, последняя строка строится так же, как и вторая.
источник
Python 2 , 120 байт
Попробуйте онлайн! (показывает экранирующие символы вместо реальных цветов, протестировано на локальном терминале)
источник
n=2
.use the closest available
, хотя вы, кажется, используете нормальные цвета вместо ярких. Тем не менее, яркие цвета, я думаю, будут ближе к желаемым.YaBasic , 220 байт
Анонимная функция, которая принимает входные данные как целое число,
n
и выводит 4 цветных дома в терминал.Отсутствие выделенной функции повторения или замены строк в yabsic действительно вредит этому ответу.
Эта версия требует графического режима и, следовательно, не работает на TIO.
Выход
Входное значение для ниже
n=7
.источник
SmileBASIC, 115 байт
Еще один, который также составляет 115 байтов:
Коды цветов, которые мне нужны (в 4-битном RGBI): 5, 11, 9, 7. Это генерируется с использованием
!!J*8-J*2+5
Если J не равно 0, это13-J*2
(дает 11,9,7), и если это так, результат всего 5источник