"Baby Shark" est une chanson pour enfants sur une famille de requins. Populaire depuis longtemps comme chanson de feu de camp, elle est popularisée depuis le milieu des années 2000 par les médias sociaux, la vidéo en ligne et la radio. - Wikipedia
Programme d'écriture qui ne prend aucune entrée et écrit le texte suivant sur la sortie standard ou dans un fichier arbitraire:
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!
C'est du code golf - le code le plus court gagne.
Trouvé ceci sur Reddit ^ 1 ^ 2 , et cela semble être un défi intéressant pour le golf.
Mises à jour:
Pas de nouvelle ligne entre les strophes, cela rend les choses trop faciles :)
Les nouvelles lignes principales / finales sont acceptables.
Réponses:
SOGL , 40 octets
Essayez-le ici!
la source
Emojicode, 292 octets (140 caractères)
Exécuter
Élargi:
Expliqué (par le doc Emojicode ):
Identique à un
{
et}
(par exemple un bloc de code)Le "démarrage du programme" (par exemple
int main()
)Affectation variable (par exemple
const char* b = "Baby";
)Dit, créer une liste de valeurs entre et 🍆 et assigner (➡️) à
f
(par exempleconst char* f[] = {b,y,o,g,a};
)Cette ligne dit de faire une boucle sur les éléments en
f
utilisant l'aliasm
, où le...
est le code entre et.Cette ligne dit de boucler sur la plage [0,3), où
...
est le code entre et.Cette ligne indique d’imprimer le format spécifié dans
...
(par exempleprintf("%s\n");
)Le code traduit en C:
Suite à cela, le code original (affiché ci-dessous pour la postérité) présentait quelques problèmes; principalement que le bloc n'a pas été inclus pour ceux qui souhaitent l'exécuter, et que les emoji ne sont pas réellement échappés. Pour cela, voici la version courante de ce code:
Original modifié pour fonctionner: Emojicode, 224 octets (67 caractères)
Élargi:
Qui produit la sortie:
Exécuter
Où en vous avez les emoji individuels représentant les mots:
Original: Emojicode, 138 octets (47 caractères)
Élargi:
la source
IBM PC DOS, assemblage 8088,
115114109108 octetsNon assemblé:
Sortie
Téléchargez SHARK.COM!
la source
Download SHARK.COM!
, j'ai immédiatement pensé aux virus informatiques.Python 2 , 93 octets
Essayez-le en ligne!
94 octets
Essayez-le en ligne!
la source
05AB1E ,
5041 octetsLa dernière partieEt j'avais raison, -9 octets grâce à @Emigna (encore plus que ce à quoi je m'attendais).v4FN3Qiy'!«ë…doo6иyšðý},
peut certainement être un peu golfée ..Essayez-le en ligne.
Explication:
Voir ce conseil 05AB1E (section Comment utiliser le dictionnaire? ) Pour comprendre pourquoi
“‡ÍÊТ×myîºpaîºma“
est"baby daddy mommy grandpa grandma"
et'ã¢
est"shark"
.la source
v…doo6иyšÐy'!«»
»
!PowerShell,
888685807976 octets-5 octets grâce à @mazzy
-1 octet grâce à @Joey
-3 octets grâce à @AdmBorkBork
Essayez-le en ligne!
Nous avons certainement parcouru un long chemin.
PowerShell (avec synthèse vocale), 156 octets
Ce n'est pas à la hauteur, mais c'est un peu drôle. Merci à @rkeet pour l'idée!
La prononciation de texte en .NET est ... bien ... intéressante. Gardez cela à l'esprit lorsque vous écoutez. Prendre plaisir!
la source
"$_ Shark"
une variable et en la réutilisant.echo
au lieu de-split
.Java (JDK) , 135 octets
Essayez-le en ligne!
la source
repeat
méthode, c'est la version 11+Retina 0.8.2 ,
777574 octetsEssayez-le en ligne! Explication:
Insérer les relations sur des lignes séparées.
Développer en quatre lignes.
Développez les espaces réservés.
6968 octets dans Retina 1:Essayez-le en ligne! Explication:
Insérer les relations sur des lignes séparées.
Ajouter le requin à chacun.
Développez des versets entiers.
la source
Python 3,
1059796 octetsEssayez-le en ligne!
Une solution simple Python 3. (9 octets enregistrés par Jo King et Quintec)
la source
' doo'*6
sont inutiles et vous avez des espaces inutiles[]
c'est un tuple, pas une liste, mais ce n'est pas pertinent pour ce programmex+' Shark'
une variableHaskell ,
122113108106104 octetsEssayez-le en ligne!
"aaa">>x
se répliquex
3 fois, de même que la"aaa"
longueur 3.s>>" doo"
réplique" doo"
6 fois, de même que la" Shark"
longueur 6!2 octets enregistrés grâce à @Fox
la source
main=putStr
. Voir aussi le résumé des règles Haskell .s>>
.m=(stuff)
peut juste êtrem=stuff
pour deux moins d'octetsdo
-notation: essayez-le en ligne!Perl 6 ,
7978 octetsEssayez-le en ligne!
Assez simple.
Explication:
la source
JavaScript, 104 octets
Plus de golf à suivre.
Essayez-le en ligne!
la source
console.log()
, vous pouvez ne pas en faire une déclaration lambda (gain de 10 caractères seulement)bash, 78 octets
TIO
73 octets si l'espace de fin est autorisé
la source
/// , 124 octets
Essayez-le en ligne!
la source
> <> ,
158115 octetsÉconomisé beaucoup d'octets grâce à Jo King
Essayez-le en ligne! Vous pouvez également coller le code sur fishlanguage.com , où vous pouvez voir une animation de
lacourse à pied.la source
PostgreSQL,
162156138 octetsUngolfed
Sauvegardé
624 octets grâce à@Nahuel Fouilleul
!||
au lieu deconcat()
unnest('{foo,bar}'::text[])
au lieu deregexp_split_to_table('foo,bar')
DB <> violon
la source
||
au lieu de concat Voir sur 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 octets
Essayez-le en ligne!
Ceci est une optimisation de la solution Haskell par starsandspirals . La nouvelle astuce consiste à parcourir les lignes de chaque strophe avec une boucle interne et à joindre les lignes à l'aide de
unlines
, en évitant la nécessité d'insérer explicitement des nouvelles lignes.Les suffixes des quatre lignes sont
[a,a,a,"!"]
, oùa
est" doo"
répliqué 6 foisa=s>>" doo"
, où starsandpirals réutilise intelligemment le long de six caractèress=" Shark"
. Ecrire[a,a,a,...]
semble un peu bête, mais je ne vois pas de chemin plus court.Une version list-monad a la même longueur mais elle a l'air cool.
Essayez-le en ligne!
la source
Ruby , 82 octets
Essayez-le en ligne!
la source
R ,
131122120 octets-9 octets grâce à Giuseppe
-2 plus d'octets, également Giuseppe
Essayez-le en ligne!
Très fier de cela en fait, surtout que R est plutôt pauvre en manipulation de chaînes. J'ai commencé par utiliser
cat(sapply(...))
, mais je me suis rendu compte qu'une boucle for supprimait quelques octets.L'abus a
"?"=c
considérablement réduit la quantité de parenthèses nécessaires.J'ai aussi essayé de
"*"=rep
répéter les lignes individuelles des strophes et des "doos", mais cela n'a pas supprimé les octets.111 octets
Solution alternative (et meilleure) de Giuseppe et d'ASCII uniquement qui résout certains problèmes d'espacement.
Essayez-le en ligne!
la source
PHP, 104 octets
Courez avec
php -nr '<code>'
ou essayez-le en ligne .la source
C # (compilateur interactif Visual C #) ,
153131 octetsMerci à @Destrogio pour avoir économisé 30 octets!
Essayez-le en ligne!
la source
R ,
126125 octetsCela ne semble pas aussi «intelligent» que les réponses de CT Hall ou de Sumner18 , mais en évitant la surcharge liée à la définition de variables, le résultat est plus petit.
Essayez-le en ligne!
Edit: enregistré 1 octet en utilisant le retour chariot selon le commentaire de Jonathan Frech
la source
\n
ramener votre nombre d'octets à un.R ,
139138137 octetsIl y a probablement une meilleure façon de faire le 'doo's mais je n'ai pas pu l'obtenir.
Edit:
Remplacé '\ n' par la nouvelle ligne à la suggestion de JDL;
Suppression du retour à la ligne suivant la suggestion de Giuseppe.
Essayez-le en ligne
la source
Lorsque
vousperdezaccidentellement100endorsementsinnationstates -12306512171611369510088998554 octetsLe programme
Je vais jouer au golf plus tard.Terminé.Je vais jouer au golf plus tard.Je vais jouer au golf encore plus tard.TERMINÉ.Je vais obtenir le nombre d'octets à 5 chiffres plus tard.YAY.Je vais avoir le nombre d'octets à 4 chiffres (je ne sais pas si cela est possible, mais je sais qu'il est impossible d'obtenir 3 chiffres avec mon approche actuelle).
la source
C (gcc) ,
123122 octets-1 octet grâce à ceilingcat
Essayez-le en ligne!
la source
main()
, ou#include
pourprintf
?gcc
(ne génère que des avertissements, mais compile bien), il est valide.#include
n'était qu'une erreur, car je compilais toujours en C ++, mais je ne pouvais toujours pas le faire compiler sans renommer votre fonctionmain
.cQuents ,
9389 octetsEssayez-le en ligne!
Notez que lors de la publication de TIO n'est pas mis à jour à la dernière version, le lien TIO peut ne pas fonctionner.
Explication
la source
JavaScript (Node.js) , 132 octets
Probablement très golfable. Génère la ligne "doo doo", puis en crée trois avec le "!" ligne après, et répète cela pour chaque requin.
Essayez-le en ligne!
la source
jq, 87 caractères
Échantillon échantillon:
Essayez-le en ligne!
la source
TeX simple, 147 octets
\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
Plutôt décevant, mais je n'ai pas posté de réponse TeX depuis longtemps. Les boucles sont très verbeuses dans teX (et la boucle sur les chaînes n'est même pas intégrée, donc c'est un peu exagéré)
la source
PHP ,
153147 octetsMerci à @manatwork pour la sauvegarde de 6 octets en soulignant qu’il
str_pad('',23'doo ');
est plus court quertrim(str_repeat('doo ',6));
Essayez-le en ligne!
la source
$d='doo doo doo doo doo doo'
est plus courte que cette combinaisonrtrim()
+str_repeat()
. :( Mais heureusement,$d=str_pad('',23,'doo ')
c’est encore plus court. Pour plus d’optimisations, consultez la section Conseils de golf en PHP .