Напишите программу или функцию, которая принимает положительное целое число и печатает или возвращает стопку из этого множества черепах в стиле ASCII , где каждая черепаха больше, чем та, что над ней.
В частности, если входные данные 1
, выходные данные должны быть:
__
/,,\o
Если ввод 2
:
__
o/,,\
____
/,__,\o
Если ввод 3
:
__
/,,\o
____
o/,__,\
______
/,____,\o
Если ввод 4
:
__
o/,,\
____
/,__,\o
______
o/,____,\
________
/,______,\o
Если ввод 5
:
__
/,,\o
____
o/,__,\
______
/,____,\o
________
o/,______,\
__________
/,________,\o
И так далее по той же схеме для больших входов.
Обратите внимание, что:
- Голова
o
нижней черепахи всегда справа. Головы черепах выше чередуются взад и вперед. - Никакие строки не могут иметь завершающие пробелы.
- Лишние пробелы не допускаются. (то есть задняя часть нижней черепахи должна быть в начале линии.)
- Допускается один дополнительный завершающий перевод строки.
Самый короткий код в байтах побеждает.
code-golf
string
ascii-art
kolmogorov-complexity
Кальвин Хобби
источник
источник
,________,
Когда кто-то говорит что-то бессмысленное.Ответы:
Пакетный, 256 байт
Обратите внимание, что в строке 1 есть завершающий пробел, а в строке 4 два пробела.
i
поэтому содержитecho
команду с соответствующим количеством отступов для каждой черепахи. Между темu
содержит количество подчеркиваний в альтернативных черепах. Ведущая нечетная черепаха имеет специальный корпус, а затем остальные черепахи выводятся парами.источник
C, 131 байт
Попробуйте онлайн.
Определяет функцию, которая печатает черепах.
Значительно злоупотребляет спецификаторами ширины и точности printf, чтобы получить интервал и повторение подчеркивания. Каждая черепаха печатается с использованием одного
printf
вызова:У меня также есть другая версия размером 144 байта с удаленными пробелами:
источник
,_,
в вашем коде.Рубин, 100 байт
Рекурсивное решение. Попробуйте онлайн!
источник
05AB1E, 45 байт
Попробуйте онлайн
источник
G
-loop уже был в версии августа 2016 года, но если это так, тоLv
может быть,G
и обаy
могут иметь значениеN
-1 байт.V ,
57, 5349 байтовПоскольку это содержит непечатаемые символы, вот hexdump:
Попробуйте онлайн!
Объяснение:
источник
0
и ниже.input > 10
. На заметку, я случайно сломал его полностью с помощью ввода0 41c14
. Не уверен, что я нарушил код или бегуна.-1
строку, которую он не может представить как число. К счастью, я не должен справляться с этим.Perl, 92 байта
91 байт код +1 для
-n
.Требуется
-E
без каких-либо дополнительных затрат.использование
Спасибо @Dada за -9 байт с его переделкой!
источник
perl -nE 'for$i(1..$_){say$"x$_._.($v=_ x(($i-1)*2))._.$/.$"x(--$_-1).($_%2?o:$_?$":"")."/,$v,\\".($_%2?"":o)}'
. Я тоже пытался попасть под 100, но не смог ...Чеддер , 105 байт
источник
Сетчатка ,
979188 байтЧисло байтов предполагает кодировку ISO 8859-1.
Попробуйте онлайн!
источник
Python 2, 116 байт
источник
lambda m:for i in r...
вместоinput()
R 150 байт
более чисто (добавляет байт)
Базовая структура рекурсивно вызывает себя - сообщая себе и последний номер, который нужно вызвать, и текущий уровень. Начинается со значения по умолчанию для y = 1, поэтому для первоначального вызова требуется только одна переменная. Быстро определяет два значения, которые часто используются. Затем он просто повторяет все необходимое количество раз.
Каждый из них неявно проверяет, добавлять ли голову вправо или влево и размещать ее соответствующим образом.
источник
#
перед заголовком в редакторе уценки, чтобы отформатировать его, как и другие ответы.TSQL, 189 байт
Теперь с принятием ввода - благодаря @PatrickRoberts
скрипка
источник
i
по стоимости 4 байтаC,
328238234215 байт:Рекурсивная реализация, использующая большое количество форматирования строк и встроенную
memset
функцию. Постараюсь играть в гольф со временем как можно больше.С онлайн! (Ideone)
источник
17
и дальше, логика ломается по какой-то причине, и поэтому, как и черепахи. Я сейчас пытаюсь выяснить, что не так.'c'
) их ASCII-кодом, чтобы сэкономить по одному символу каждый :)Java 1,7, 238 байт
Набор из двух функций: первая выполняет итерацию по вводу (количество черепах), вторая облегчает рекурсивное построение последовательности повторяющихся символов (т. Е. Ведущие пробелы, спина и живот черепах).
Ungolfed:
Запустить его!(Ideone)
Я предположил, что можно исключить определение класса из числа байтов.
Возможно, я смогу продвинуть это немного дальше, изменив порядок итераций цикла (построение снизу вверх) и / или сделав полностью рекурсивным, как некоторые другие ответы.
Примечание для себя: в Java действительно отсутствует встроенная стенография для повторения n символов ...
источник
Python,
137120113110 байтUngolfed:
Головы были жесткими.
источник
('o','')[b]
, вы можете сделать'o'*(1-b)
(и'o'*b
для('o','')[1-b]
).'0'*-~-1
Короче'0'*(1-b)
F #,
218207202196187 байт.Побрили большинство этих байтов, добавив переменные
Логика бесстыдно украдена из этого ответа Python
Попробуйте онлайн.
источник
CJam , 88 байт
Сначала делает самую большую черепаху (потому что иначе на чем будет стоять любая другая черепаха?), Затем постепенно уменьшает размер, пока не будет изготовлена самая маленькая. Работает на любое целое число больше 0.
Попробуйте онлайн!
источник
Python 2,7,
255238236 байтНесмотря на то, что это проигрывает обоим другим решениям Python 2, мне понравился мой рекурсивный подход:
edit1: отбросил несколько байтов, исключив некоторые замены
edit2: побрил 2 байта, сохранив подчеркивание как переменную
источник
Python 2, 147 байт
Попробуйте онлайн
источник
Python 2,7,
139114113130 байтМне также понравился рекурсивный подход Игуанодона, так что вот немного более короткая попытка.
РЕДАКТИРОВАТЬ
Могучий
25269 байтов в гольф благодаря фантастическим советам от Destructible Watermelon. Большое спасибо!Думаю, это может быть самый короткий ответ Python сейчас :-)источник
i=input();t(i)
часть, потому что вам разрешено просто иметь функцию.PowerShell ,
10510097878584 байта-21 байт благодаря Маззи, сумасшедшему
Попробуйте онлайн!
Умно сдвигает переменные, используя,
$_--
чтобы избежать использования повторяющихся($_+1)
блоков для сохранения нескольких байтов. Он также преобразует один аргумент в строку, которая затем преобразуется в int, когда используется в диапазоне для перебора количества черепах. Самый большой трюк теперь имеет 2-й уровень шага черепахи, увеличивая только каждый второй ряд, вычитая$_%2
(т.е. 0, если четный, 1, если нечетный) из текущего row_count.В противном случае, требуется много математических индексов, чтобы получить правильные значения
_
исчетчики, включая счетчик лагов в форме
$i++
, и теперь только один индекс списка, чтобы поставить голову на правильную сторону.источник
ES6 (JavaScript), 140 байт
Код
Контрольная работа
источник
Холст , 26 байтов
Попробуй это здесь!
источник