«Baby Shark» - это детская песня о семье акул. Уже давно популярная песня для костра, она популярна с середины 2000-х годов в социальных сетях, онлайн-видео и радио. - Википедия
Напишите программу, которая не принимает ввод и записывает следующий текст в стандартный вывод или произвольный файл:
Baby Shark doo doo doo doo doo doo
Baby Shark doo doo doo doo doo doo
Baby Shark doo doo doo doo doo doo
Baby Shark!
Daddy Shark doo doo doo doo doo doo
Daddy Shark doo doo doo doo doo doo
Daddy Shark doo doo doo doo doo doo
Daddy Shark!
Mommy Shark doo doo doo doo doo doo
Mommy Shark doo doo doo doo doo doo
Mommy Shark doo doo doo doo doo doo
Mommy Shark!
Grandpa Shark doo doo doo doo doo doo
Grandpa Shark doo doo doo doo doo doo
Grandpa Shark doo doo doo doo doo doo
Grandpa Shark!
Grandma Shark doo doo doo doo doo doo
Grandma Shark doo doo doo doo doo doo
Grandma Shark doo doo doo doo doo doo
Grandma Shark!
Это код гольф - самый короткий код выигрывает.
Нашел это на Reddit ^ 1 ^ 2 , и это кажется интересным испытанием для гольфа.
Обновления:
Никакой новой строки между строфами нет, это слишком просто :)
Лидирующие / завершающие символы новой строки в порядке.
Ответы:
SOGL , 40 байт
Попробуй это здесь!
источник
Emojicode, 292 байта (140 символов)
Запустить его
Расширено:
Объяснил (в соответствии с документом Emojicode ):
Так же, как
{
и}
(например, блок кода)«Запуск программы» (например
int main()
)Переменная присваивания (например
const char* b = "Baby";
)Говорит, создайте список значений между 🍨 и 🍆 и присвойте (➡️)
f
(напримерconst char* f[] = {b,y,o,g,a};
)Эта строка говорит, что нужно перебирать элементы при
f
использовании псевдонимаm
, где...
это код между the и 🍉.Эта строка говорит, что цикл в диапазоне [0,3), где
...
это код между 🍇 и 🍉.Эта строка говорит о необходимости печати в формате, указанном в
...
(напримерprintf("%s\n");
)Код переведен на C:
После этого у исходного кода (выложенного ниже для потомков) были некоторые проблемы; в основном это то, что блок included не был включен для тех, кто хочет его запустить, а смайлики на самом деле не были экранированы должным образом, вот действительная версия этого кода:
Оригинал изменен для запуска: Emojicode, 224 байта (67 символов)
Расширено:
Который производит вывод:
Запустить его
Где у вас есть отдельные эмодзи, представляющие слова:
Оригинал: Emojicode, 138 байт (47 символов)
Расширено:
источник
IBM PC DOS, сборка 8088,
115114109108 байтовразобранное:
Выход
Загрузите SHARK.COM!
источник
Download SHARK.COM!
, я сразу подумал о компьютерных вирусах.Python 2 , 93 байта
Попробуйте онлайн!
94 байта
Попробуйте онлайн!
источник
05AB1E ,
5041 байтПоследняя частьИ я был прав, -9 байтов благодаря @Emigna (даже больше, чем я ожидал).v4FN3Qiy'!«ë…doo6иyšðý},
определенно может быть немного в гольфе.Попробуйте онлайн.
Объяснение:
Посмотрите эту подсказку 05AB1E (раздел Как пользоваться словарем? ), Чтобы понять, почему
“‡ÍÊТ×myîºpaîºma“
есть"baby daddy mommy grandpa grandma"
и'ã¢
есть"shark"
.источник
v…doo6иyšÐy'!«»
»
!PowerShell,
888685807976 байт-5 байт благодаря @mazzy
-1 байт благодаря @Joey
-3 байт благодаря @AdmBorkBork
Попробуйте онлайн!
Мы, безусловно, прошли долгий путь.
PowerShell (с преобразованием текста в речь), 156 байт
Это не по спецификации, но это довольно забавно. Спасибо @rkeet за идею!
.NET произношение текста в речь ... ну ... интересно. Имейте это в виду при прослушивании. Наслаждайтесь!
источник
"$_ Shark"
переменную и используя ее повторно.echo
вместо-split
.Java (JDK) , 135 байт
Попробуйте онлайн!
источник
repeat
метод, это версия 11+Сетчатка 0.8.2 ,
777574 байтаПопробуйте онлайн! Объяснение:
Вставьте отношения на отдельных строках.
Разверните в четыре строки.
Разверните заполнители.
6968 байт в сетчатке 1:Попробуйте онлайн! Объяснение:
Вставьте отношения на отдельных строках.
Добавьте Акулу к каждому.
Разверните в целые стихи.
источник
Python 3,
1059796 байтПопробуйте онлайн!
Простое решение Python 3. (9 байтов сохранено Джо Кингом и Quintec)
источник
' doo'*6
[]
, это кортеж, а не список, но это не относится к этой программеx+' Shark'
переменнуюHaskell ,
122113108106104 байтаПопробуйте онлайн!
"aaa">>x
повторяетсяx
3 раза, так как"aaa"
имеет длину 3.s>>" doo"
повторяется" doo"
6 раз, так как" Shark"
имеет длину 6!2 байта сохранены благодаря @Fox
источник
main=putStr
. Смотрите также свод правил Haskell .s>>
.m=(stuff)
может быть толькоm=stuff
на два байта меньшеdo
-notation: попробуйте онлайн!Perl 6 ,
7978 байтПопробуйте онлайн!
Довольно просто
Объяснение:
источник
JavaScript, 104 байта
Больше игры в гольф, чтобы следовать.
Попробуйте онлайн!
источник
console.log()
Баш, 78 байт
TIO
73 байта, если разрешено завершающее пространство
источник
/// , 124 байта
Попробуйте онлайн!
источник
> <> ,
158115 байтСохранено много байтов благодаря Джо Кингу
Попробуйте онлайн! Вы также можете вставить код в fishlanguage.com , где вы можете увидеть анимацию
плавания.источник
PostgreSQL,
162156138 байтUngolfed
Сохранено
624 байта благодаря@Nahuel Fouilleul
!||
вместоconcat()
unnest('{foo,bar}'::text[])
вместоregexp_split_to_table('foo,bar')
DB <> скрипка
источник
||
вместо concat View на DB Fiddleselect a||' Shark'||replace(b,'1',repeat(' doo',6))from unnest('{Baby,Daddy,Mommy,Grandpa,Grandma}'::text[])a,unnest('{1,1,1,!}'::text[])b
Haskell , 97 байт
Попробуйте онлайн!
Это оптимизация решения Haskell по звездам и спиралям . Новый трюк состоит в том, чтобы перебирать строки каждой строфы с помощью внутреннего цикла и соединять строки, используя
unlines
, избавляя от необходимости явно вставлять новые строки.Суффиксы четырех линий
[a,a,a,"!"]
, гдеa
будет" doo"
реплицировать 6 разa=s>>" doo"
, где starsandspirals умно повторно шести символов длинойs=" Shark"
. Письмо[a,a,a,...]
выглядит немного глупо, но я не вижу более короткого пути.Версия со списком монад такой же длины, но выглядит круто.
Попробуйте онлайн!
источник
Рубин , 82 байта
Попробуйте онлайн!
источник
R ,
131122120 байт-9 байт благодаря Джузеппе
Еще -2 байта, также Джузеппе
Попробуйте онлайн!
Я действительно горжусь этим, особенно если учесть, что R плохо справляется со строками. Я начал использовать
cat(sapply(...))
, но понял, что цикл for сбрасывает несколько байтов.Злоупотребление
"?"=c
значительно сократило количество необходимых скобок.Я также пытался
"*"=rep
повторить отдельные строки строф и «ду», но это не сбрило ни одного байта.111 байт
Giuseppe и ASCII-only альтернативное (и лучшее) решение, которое устраняет некоторые пробелы.
Попробуйте онлайн!
источник
PHP, 104 байта
Запустите
php -nr '<code>'
или попробуйте онлайн .источник
C # (интерактивный компилятор Visual C #) ,
153131 байтСпасибо @Destrogio за сохранение 30 байтов!
Попробуйте онлайн!
источник
R ,
126125 байтЭто не так «умно», как ответы CT Hall или Sumner18 , но, избегая затрат на определение переменных, получается меньше.
Попробуйте онлайн!
Редактировать: 1 байт с помощью возврата каретки согласно комментарию Джонатана Фреха
источник
\n
чтобы снова уменьшить счетчик байтов.R ,
139138137 байтВозможно, есть лучший способ сделать это, но я не смог его получить.
Редактировать:
заменил '\ n' фактической новой строкой по предложению JDL;
Удален завершающий перевод строки по предложению Джузеппе.
Попробуйте онлайн
источник
когда
выслучайнозакрываете100одобренийинстации -123065121716113695100889конечных 113 554 байтаПрограмма
Я буду играть в гольф позже.Готово.Я буду играть в гольф больше (позже)Готово.Я буду играть в гольф еще позже.СДЕЛАННЫЙ.Я получу количество байтов до 5 цифр позже.УРА.Я получу количество байтов до 4 цифр (я не знаю, возможно ли это, но я знаю, что при моем текущем подходе невозможно получить 3 цифры).
источник
C (gcc) ,
123122 байта-1 байт благодаря возрастанию
Попробуйте онлайн!
источник
main()
, или#include
дляprintf
?gcc
(генерирует только предупреждения, но компилирует нормально), это действительно.#include
была только ошибкой, потому что я все еще компилировал как C ++, но я все еще не мог заставить его компилироваться без переименования вашей функцииmain
.cQuents ,
9389 байтПопробуйте онлайн!
Обратите внимание, что на момент публикации TIO не обновляется до последней версии, поэтому ссылка TIO может не работать.
объяснение
источник
JavaScript (Node.js) , 132 байта
Вероятно, очень способный к гольфу. Генерирует строку "doo doo", затем создает три из них с "!" строка после и повторяет это для каждой акулы.
Попробуйте онлайн!
источник
JQ, 87 символов
Образец прогона:
Попробуйте онлайн!
источник
Простой TeX, 147 байт
\input pgffor\def\D{doo~}\def\d{\D\D\D\D\D\D}\def\S{Shark}\def\y{\x~\S~\d\par}\foreach\x in{Baby,Mommy,Daddy,Grandma,Grandpa}{\y\y\y\x~\S!\par}\bye
Скорее разочаровывает, но я не отправлял ответ TeX в возрасте. Циклы очень многословны в teX (и циклический просмотр по строкам даже не встроен, так что даже это немного растянуто)
источник
PHP ,
153147 байтСпасибо @manatwork за сохранение 6 байтов, указав,
str_pad('',23'doo ');
что они корочеrtrim(str_repeat('doo ',6));
Попробуйте онлайн!
источник
$d='doo doo doo doo doo doo'
короче этой комбинацииrtrim()
+str_repeat()
. :( Но, к счастью$d=str_pad('',23,'doo ')
, еще короче. Дополнительные советы по оптимизации см. В разделе Советы по игре в гольф на PHP .