"Baby Shark" ist ein Kinderlied über eine Haifamilie. Es war lange Zeit als Lagerfeuersong beliebt und wurde seit Mitte der 2000er Jahre durch soziale Medien, Online-Videos und Radio populär gemacht. - Wikipedia
Schreiben Sie ein Programm, das keine Eingabe benötigt, und schreiben Sie den folgenden Text in die Standardausgabe oder in eine beliebige Datei:
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!
Dies ist Code Golf - der kürzeste Code gewinnt.
Fand dies auf Reddit ^ 1 ^ 2 , und es scheint eine interessante Herausforderung für Golf.
Aktualisierung:
Keine Zeilenumbrüche zwischen den Strophen, das macht es zu einfach :)
Führende / nachfolgende Zeilenumbrüche sind in Ordnung.
Antworten:
SOGL , 40 Bytes
Probieren Sie es hier aus!
quelle
Emojicode, 292 Bytes (140 Zeichen)
Starte es
Erweitert aus:
Erklärt (gemäß dem Emojicode- Dokument):
Das Gleiche wie ein
{
und}
(zB ein Codeblock)Der "Programmstart" (zB
int main()
)Variablenzuordnung (zB
const char* b = "Baby";
)Sagt, erstellen Sie eine Liste von Werten zwischen 🍨 und 🍆 und weisen Sie (➡️) zu
f
(zBconst char* f[] = {b,y,o,g,a};
)In dieser Zeile wird angegeben, dass die Elemente im
f
Alias durchlaufen werden sollenm
, wobei...
der Code zwischen 🍇 und 🍉 steht.In dieser Zeile wird angegeben, dass die Schleife über den Bereich [0,3] geführt werden soll, wobei
...
der Code zwischen 🍇 und 🍉 steht.In dieser Zeile steht, dass das in
...
(zBprintf("%s\n");
) angegebene Format gedruckt werden soll.Der Code übersetzt in C:
Im Anschluss daran hatte der Originalcode (unten für die Nachwelt veröffentlicht) einige Probleme. meistens, dass der 🏁🍇🍉-Block nicht für diejenigen enthalten war, die ihn ausführen möchten, und die Emojis nicht richtig maskiert wurden, dazu hier die aktuelle Version dieses Codes:
Original für die Ausführung modifiziert: Emojicode, 224 Bytes (67 Zeichen)
Erweitert aus:
Welches erzeugt die Ausgabe:
Starte es
Wo haben Sie die einzelnen Emojis, die die Wörter darstellen:
Original: Emojicode, 138 Bytes (47 Zeichen)
Erweitert aus:
quelle
IBM PC DOS, 8088-Assembly,
115114109108 BytesZerlegt:
Ausgabe
Laden Sie SHARK.COM herunter!
quelle
Download SHARK.COM!
, dachte ich sofort an Computerviren.Python 2 , 93 Bytes
Probieren Sie es online!
94 Bytes
Probieren Sie es online!
quelle
05AB1E ,
5041 BytesLetzter TeilUnd ich hatte recht, -9 Bytes dank @Emigna (sogar mehr als ich erwartet hatte).v4FN3Qiy'!«ë…doo6иyšðý},
kann definitiv ein bisschen golfen werden.Probieren Sie es online aus.
Erläuterung:
Sehen Sie sich meinen Tipp 05AB1E (Abschnitt Wie verwende ich das Wörterbuch? ) An, um zu verstehen, warum es
“‡ÍÊТ×myîºpaîºma“
ist"baby daddy mommy grandpa grandma"
und'ã¢
ist"shark"
.quelle
v…doo6иyšÐy'!«»
»
!PowerShell,
888685807976 Byte-5 Bytes dank @mazzy
-1 Bytes dank @Joey
-3 Bytes dank @AdmBorkBork
Probieren Sie es online!
Wir haben sicherlich einen langen Weg zurückgelegt.
PowerShell (mit Text in Sprache), 156 Byte
Dies entspricht NICHT der Spezifikation, ist aber irgendwie lustig. Danke an @rkeet für die Idee!
Die Aussprache von .NET Text to Speech ist ... nun ja ... interessant. Denken Sie daran, wenn Sie zuhören. Genießen!
quelle
"$_ Shark"
es einer Variablen zuweisen und erneut verwenden.echo
anstelle von-split
.Java (JDK) , 135 Byte
Probieren Sie es online!
quelle
repeat
Methode ist es Version 11+Retina 0,8,2 ,
777574 BytesProbieren Sie es online! Erläuterung:
Fügen Sie die Relationen in separate Zeilen ein.
In vier Zeilen erweitern.
Erweitern Sie die Platzhalter.
6968 Bytes in Retina 1:Probieren Sie es online! Erläuterung:
Fügen Sie die Relationen in separate Zeilen ein.
Füge jedem Shark hinzu.
Erweitern Sie in ganze Verse.
quelle
Python 3,
1059796 BytesProbieren Sie es online!
Eine einfache Python 3-Lösung. (9 Bytes von Jo King und Quintec gespeichert)
quelle
' doo'*6
sind unnötig und Sie haben unnötige Leerzeichen[]
es ein Tupel, keine Liste, aber das ist für dieses Programm nicht relevantx+' Shark'
auf eine VariableHaskell ,
122113108106104 BytesProbieren Sie es online!
"aaa">>x
Wirdx
dreimal repliziert , ebenso"aaa"
wie Länge 3.s>>" doo"
repliziert" doo"
6 mal, wie" Shark"
Länge 6 hat!2 Bytes gespart dank @Fox
quelle
main=putStr
. Siehe auch die Zusammenfassung der Haskell-Regeln .s>>
.m=(stuff)
kann nurm=stuff
für zwei Bytes weniger seindo
-notation: Probieren Sie es online aus!Perl 6 ,
7978 BytesProbieren Sie es online!
Ziemlich einfach.
Erläuterung:
quelle
JavaScript, 104 Byte
Weitere Golfspiele folgen.
Probieren Sie es online!
quelle
console.log()
Bash, 78 Bytes
TIO
73 Bytes, wenn nachfolgender Speicherplatz zulässig ist
quelle
/// 124 Bytes
Probieren Sie es online!
quelle
> <> ,
158115 BytesJo King hat eine Menge Bytes gespart
Probieren Sie es online! Sie können den Code auch in fishlanguage.com einfügen , wo Sie eine Animation davon sehen können, wie sie
schwimmt.quelle
PostgreSQL,
162156138 BytesUngolfed
624 Bytes gespart dank@Nahuel Fouilleul
!||
anstelle vonconcat()
unnest('{foo,bar}'::text[])
anstelle vonregexp_split_to_table('foo,bar')
DB <> Geige
quelle
||
anstelle von concat View on 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 Bytes
Probieren Sie es online!
Dies ist eine Optimierung der Haskell-Lösung durch Sterne und Spiralen . Der neue Trick besteht darin, die Zeilen jeder Zeilengruppe mit einer inneren Schleife
unlines
zu durchlaufen und die Zeilen mithilfe von zu verbinden , ohne dass explizit neue Zeilen eingefügt werden müssen.Die Suffixe der vier Zeilen sind
[a,a,a,"!"]
, in denena
sie" doo"
repliziert 6mal mita=s>>" doo"
, wo starsandspirals geschickt verwendet die sechs Zeichen langs=" Shark"
. Das Schreiben[a,a,a,...]
sieht ein bisschen albern aus, aber ich sehe keinen kürzeren Weg.Eine List-Monad-Version hat die gleiche Länge, sieht aber cool aus.
Probieren Sie es online!
quelle
Ruby , 82 Bytes
Probieren Sie es online!
quelle
R ,
131122120 Bytes-9 Bytes dank Giuseppe
-2 weitere Bytes, auch Giuseppe
Probieren Sie es online!
Wirklich sehr stolz darauf, vor allem, wenn R im Umgang mit Saiten ziemlich schlecht ist. Ich begann mit
cat(sapply(...))
, realisierte aber, dass sich eine for-Schleife um einige Bytes verringert.Missbrauch der
"?"=c
deutlich reduzierten Anzahl der benötigten Klammern.Ich habe auch versucht,
"*"=rep
die einzelnen Zeilen der Strophen und der "doos" zu wiederholen, aber das hat keine Bytes abgeschabt.111 Bytes
Die alternative (und bessere) Lösung von Giuseppe und ASCII, die einige Platzprobleme behebt.
Probieren Sie es online!
quelle
PHP, 104 Bytes
Laufen Sie mit
php -nr '<code>'
oder versuchen Sie es online .quelle
C # (Visual C # Interactive Compiler) ,
153131 BytesVielen Dank an @Destrogio für die Einsparung von 30 Bytes!
Probieren Sie es online!
quelle
R ,
126125 BytesDies fühlt sich nicht so 'clever' an wie die Antworten von CT Hall oder Sumner18 , aber durch die Vermeidung des Overheads beim Definieren von Variablen wird es kleiner.
Probieren Sie es online!
Bearbeiten: 1 Byte mit Wagenrücklauf nach Kommentar von Jonathan Frech gespeichert
quelle
\n
die Anzahl der Bytes erneut zu verringern.R ,
139138137 BytesEs gibt wahrscheinlich einen besseren Weg, das zu tun, aber ich konnte es nicht bekommen.
Bearbeiten:
'\ n' wird auf Vorschlag von JDL durch eine aktuelle neue Zeile ersetzt.
Der nachgestellte Zeilenumbruch wurde auf Vorschlag von Giuseppe entfernt.
Probieren Sie es online aus
quelle
wenn
Sieversehentlich100Angeboteschließen-123.065121.716113.695100.88998.554 BytesDas Programm
Ich werde das später Golf spielen.Getan.Ich werde diesmal Golf spielen. (Später)Fertig.Ich werde das später noch mehr Golf spielen.GETAN.Ich werde die Byteanzahl später auf 5 Stellen bringen.YAY.Ich werde die Byteanzahl auf 4 Stellen bringen (ich weiß nicht, ob dies möglich ist, aber ich weiß, dass es mit meinem aktuellen Ansatz unmöglich ist, 3 Stellen zu bekommen).
quelle
C (gcc) ,
123122 Bytes-1 byte dank ceilingcat
Probieren Sie es online!
quelle
main()
oder#include
fürprintf
?gcc
(generiert nur Warnungen, kompiliert aber einwandfrei) und gültig ist.#include
nur ein Fehler war, weil ich immer noch als C ++ kompilierte, aber ich konnte es immer noch nicht zum Kompilieren bringen, ohne Ihre Funktion in umzubenennenmain
.cQuents ,
9389 BytesProbieren Sie es online!
Beachten Sie, dass TIO zum Zeitpunkt der Veröffentlichung nicht auf die neueste Version aktualisiert wurde, sodass der TIO-Link möglicherweise nicht funktioniert.
Erläuterung
quelle
JavaScript (Node.js) , 132 Byte
Wahrscheinlich sehr golffähig. Erzeugt die Zeile "doo doo" und erstellt dann drei davon mit dem "!" Zeile danach und wiederholt dies für jeden Hai.
Probieren Sie es online!
quelle
jq, 87 Zeichen
Probelauf:
Probieren Sie es online!
quelle
Plain TeX, 147 Bytes
\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
Ziemlich enttäuschend, aber ich habe seit Ewigkeiten keine TeX-Antwort mehr gepostet. Schleifen sind in teX sehr ausführlich (und das Schleifen über Strings ist noch nicht einmal eingebaut, selbst dies ist ein bisschen langwierig)
quelle
PHP ,
153147 BytesDank an @manatwork für das Speichern von 6 Bytes durch Hinweisen
str_pad('',23'doo ');
ist kürzer alsrtrim(str_repeat('doo ',6));
Probieren Sie es online!
quelle
$d='doo doo doo doo doo doo'
ist noch kürzer als diertrim()
+str_repeat()
Kombination. :( Aber zum Glück$d=str_pad('',23,'doo ')
ist es noch kürzer. Weitere Tipps zur Optimierung finden Sie unter Tipps zum Golfen in PHP .