На днях мой сын попросил меня построить для него лестницу из легошишских блоков. И я придумал что-то вроде этого:
Затем мой ребенок попросил у меня программу, использующую наименьшее количество байтов, которые генерировали аналогичную лестницу на экране компьютера. Я не очень хорош в код-гольфе , поэтому мне нужна ваша помощь. Мне нужна программа, которая:
- Получает положительное целое число с количеством уровней, которые должна иметь лестница.
- Выводит чертеж лестницы с рисунком, который вы видите на изображении.
Вывод будет в текстовом формате, но кирпичи можно отличить один от другого. Например, вы можете использовать символ «█» в качестве половины блока и раскрасить его в любой цвет, который вы хотите, или просто выбрать любой символ по вашему выбору.
Ограничения:
- Блоки должны быть трех разных цветов, которые будут использоваться как можно дольше (при вводе 1 или 2 недостаточно блоков для использования всех трех цветов). Если вы хотите, вы можете использовать символы «░▒▓», например, или просто выбрать три разных символа.
- В одном ряду не может быть двух блоков одного цвета или рисунка.
Моему сыну на самом деле нет дела до конечных пробелов или новых линий, пока идет лестница.
Примеры (извините за неудачный выбор символов):
Input: 1
Output:
██
Input: 2
Output:
██
▓▓
Input: 3
Output:
██
▓▓
██░░
Input: 5
Output:
██
██
██░░
██░░
██░░▓▓
Ответы:
Желе ,
21 1916 байтПолная программа печати результата.
Использует
00
,11
и22
как блоки.Попробуйте онлайн!
Как?
источник
Python 2 , 55 байт
Попробуйте онлайн!
Циклы между блоками
22, 44
, кроме верхнего ряда00
. Например, на входе 10 печатаетПечатает строки увеличивающейся длины
i=2,3,..
, создавая пространство для нечетных длин, повторяя времена шаблонаi
и обрезая по длинеi
. Шаблон2244
для всех строк, кроме первой,i=2
для которой он0
. Это достигается с помощью арифметического выражения2%i*1122
.источник
JavaScript (ES6), 80 байт
Показать фрагмент кода
JavaScript (ES6), 87 байт
Предыдущее решение.
источник
SOGL ,
31282725 байтовОбъяснение:
используя эту технику
Пример вывода для 9:
неконкурентный, 22 байта
Команда
m
была задокументирована на 1-м коммите SOGL , просто не реализована.источник
05AB1E ,
2221201817 байтИспользует интересный факт, что
4^(N+2)/5 = [3,12,51,204,...] = b[11,1100,110011,11001100,...]
Попробуйте онлайн!
объяснение
источник
PHP,
6159работает почти так же, как версии Python, но использует все три цвета, если это возможно. Нет новой строки.
источник
aa<?for...
.Pyth , 29 байт
Проверьте это онлайн!
Пояснения
Я уверен, что есть много способов сократить этот код, но я устал от короля прямо сейчас ... Попробую позже.
источник
Пакет, 125 байт
Примечание: сохраните это в CP437 или CP850 или что-то подобное. Работает, вращая цвета каждый раз. Поскольку я не могу отобразить строку для выполнения поворота, я использую четыре замены, используя пробелы в качестве временной стадии. Затем это также позволяет мне ставить перед каждой строкой пробел, чтобы два пробела превратились в новый блок. Образец вывода:
источник