"Baby Shark" es una canción infantil sobre una familia de tiburones. Habiendo sido popular durante mucho tiempo como una canción de fogata, se ha popularizado desde mediados de la década de 2000 en las redes sociales, los videos en línea y la radio. - Wikipedia
Escriba un programa que no tome entrada y escriba el siguiente texto en la salida estándar o en un archivo arbitrario:
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!
Este es el código de golf: el código más corto gana.
Encontré esto en Reddit ^ 1 ^ 2 , y parece un desafío interesante para el golf.
Actualizaciones:
No hay nueva línea entre estrofas, eso lo hace demasiado fácil :)
Las nuevas líneas iniciales / finales están bien.
Respuestas:
SOGL , 40 bytes
Pruébalo aquí!
fuente
Emojicode, 292 bytes (140 caracteres)
Ejecutarlo
Ampliado:
Explicado (según el documento de Emojicode ):
Lo mismo que una
{
y}
(por ejemplo, un bloque de código)El "inicio del programa" (p
int main()
. Ej. )Asignación variable (p
const char* b = "Baby";
. Ej. )Dice, cree una lista de valores entre 🍨 y 🍆 y asigne (➡️) a
f
(por ejemploconst char* f[] = {b,y,o,g,a};
)Esta línea dice que se repitan los elementos al
f
usar el aliasm
, donde...
es el código entre 🍇 y 🍉.Esta línea dice que se repita en el rango [0,3), donde
...
es el código entre 🍇 y 🍉.Esta línea dice que imprima el formato especificado en
...
(pprintf("%s\n");
. Ej. )El código traducido a C:
Después de esto, el código original (publicado a continuación para la posteridad) tuvo algunos problemas; principalmente que el bloque 🏁🍇🍉 no se incluyó para aquellos que desean ejecutarlo, y los emoji no se escaparon correctamente, para eso, aquí está la versión real de ese código:
Original modificado para ejecutar: Emojicode, 224 bytes (67 caracteres)
Ampliado:
Que produce la salida:
Ejecutarlo
¿Dónde tienes los emoji individuales que representan las palabras?
Original: Emojicode, 138 bytes (47 caracteres)
Ampliado:
fuente
IBM PC DOS, ensamblaje 8088,
115114109108 bytesDesmontado:
Salida
Descargar SHARK.COM!
fuente
Download SHARK.COM!
, inmediatamente pensé en los virus informáticos.Python 2 , 93 bytes
Pruébalo en línea!
94 bytes
Pruébalo en línea!
fuente
05AB1E ,
5041 bytesLa última parteY tenía razón, -9 bytes gracias a @Emigna (incluso más de lo que esperaba).v4FN3Qiy'!«ë…doo6иyšðý},
definitivamente se puede jugar un poco al golf ...Pruébalo en línea.
Explicación:
Vea esta sugerencia mía 05AB1E (sección ¿Cómo usar el diccionario? ) Para comprender por qué
“‡ÍÊТ×myîºpaîºma“
es"baby daddy mommy grandpa grandma"
y'ã¢
es"shark"
.fuente
v…doo6иyšÐy'!«»
»
!PowerShell,
888685807976 bytes-5 bytes gracias a @mazzy
-1 byte gracias a @Joey
-3 bytes gracias a @AdmBorkBork
Pruébalo en línea!
Ciertamente hemos recorrido un largo camino.
PowerShell (con texto a voz), 156 bytes
Esto NO está a la altura, pero es un poco divertido. ¡Gracias a @rkeet por la idea!
La pronunciación de texto a voz .NET es ... bueno ... interesante. Tenga esto en cuenta cuando escuche. ¡Disfrutar!
fuente
"$_ Shark"
a una variable y reutilizándolo.echo
lugar de-split
.Java (JDK) , 135 bytes
Pruébalo en línea!
fuente
repeat
método, es la versión 11+Retina 0.8.2 ,
777574 bytesPruébalo en línea! Explicación:
Insertar las relaciones en líneas separadas.
Expande en cuatro líneas.
Expande los marcadores de posición.
6968 bytes en Retina 1:Pruébalo en línea! Explicación:
Insertar las relaciones en líneas separadas.
Añadir tiburón a cada uno.
Expandir en versos enteros.
fuente
Python 3,
1059796 bytesPruébalo en línea!
Una solución simple de Python 3. (9 bytes guardados por Jo King y Quintec)
fuente
' doo'*6
son innecesarios y hay espacios en blanco innecesarios allí[]
es una tupla, no una lista, pero eso no es relevante para este programax+' Shark'
una variableHaskell ,
122113108106104 bytesPruébalo en línea!
"aaa">>x
replicax
3 veces, ya que"aaa"
tiene longitud 3.s>>" doo"
replica" doo"
6 veces, como" Shark"
tiene longitud 6!2 bytes guardados gracias a @Fox
fuente
main=putStr
. Ver también el resumen de reglas de Haskell .s>>
.m=(stuff)
puede serm=stuff
por dos bytes menosdo
-notation: ¡ Pruébelo en línea!Perl 6 ,
7978 bytesPruébalo en línea!
Bastante simple.
Explicación:
fuente
JavaScript, 104 bytes
Más golf para seguir.
¡Pruébelo en línea!
fuente
console.log()
, puede hacerlo no como una declaración lambda (solo 10 caracteres de ganancia)bash, 78 bytes
TIO
73 bytes si se permite el espacio final
fuente
/// , 124 bytes
Pruébalo en línea!
fuente
> <> ,
158115bytesAhorré muchos bytes gracias a Jo King
Pruébalo en línea! También puede pegar el código en fishlanguage.com , donde puede ver una animación de él
nadandocorriendo.fuente
PostgreSQL,
162156138 bytesSin golf
Guardado
624 bytes gracias a@Nahuel Fouilleul
!||
lugar deconcat()
unnest('{foo,bar}'::text[])
lugar deregexp_split_to_table('foo,bar')
DB <> violín
fuente
||
lugar de concat Ver en 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
Pruébalo en línea!
Esta es una optimización de la solución Haskell por estrellas y espirales . El nuevo truco es iterar sobre las filas de cada estrofa con un bucle interno, y unir las líneas usando
unlines
, ahorrando la necesidad de insertar líneas nuevas explícitamente.Los sufijos de las cuatro líneas son
[a,a,a,"!"]
, dondea
se" doo"
replica 6 veces cona=s>>" doo"
, donde las estrellas y las espirales reutilizan inteligentemente los seis caracteres de largos=" Shark"
. Escribir[a,a,a,...]
parece un poco tonto, pero no veo un camino más corto.Una versión lista-mónada tiene la misma longitud pero se ve genial.
Pruébalo en línea!
fuente
Ruby , 82 bytes
Pruébalo en línea!
fuente
R ,
131122120 bytes-9 bytes gracias a Giuseppe
-2 bytes más, también Giuseppe
Pruébalo en línea!
Muy orgulloso de esto en realidad, especialmente porque R es bastante pobre en el manejo de cadenas. Comencé a usar
cat(sapply(...))
, pero me di cuenta de un bucle for afeitado de unos pocos bytes.Abusar de esto
"?"=c
redujo significativamente la cantidad de paréntesis necesarios.También intenté
"*"=rep
repetir las líneas individuales de las estrofas y los "doos", pero eso no eliminó ningún byte.111 bytes
La solución alternativa (y mejor) de Giuseppe y ASCII-only que soluciona algunos problemas de espacio.
Pruébalo en línea!
fuente
PHP, 104 bytes
Ejecutar
php -nr '<code>'
o probarlo en línea .fuente
C # (compilador interactivo de Visual C #) ,
153131 bytes¡Gracias a @Destrogio por guardar 30 bytes!
Pruébalo en línea!
fuente
R ,
126125bytesEsto no se siente tan 'inteligente' como las respuestas de CT Hall o Sumner18 , pero al evitar la sobrecarga de definir variables resulta más pequeña.
Pruébalo en línea!
Editar: guardado 1 byte mediante el retorno de carro según el comentario de Jonathan Frech
fuente
\n
volver a bajar el número de bytes uno.R ,
139138137 bytesProbablemente haya una mejor manera de hacer el 'doo' pero no pude conseguirlo.
Editar:
Reemplazado '\ n' con una nueva línea real a sugerencia de JDL;
Se eliminó la nueva línea final a sugerencia de Giuseppe.
Pruébalo en línea
fuente
cuando
accidentalmente secierran100establecimientos deproveedores -123,065121,716113,695100,88998,554 bytesEl programa
Jugaré golf más tarde.Hecho.Voy a jugar al golf más (más tarde)Listo.Golfé esto aún más tarde.HECHO.Obtendré el recuento de bytes hasta 5 dígitos más tarde.HURRA.Obtendré el recuento de bytes a 4 dígitos (no sé si esto es posible, pero sí sé que es imposible obtener 3 dígitos con mi enfoque actual).
fuente
C (gcc) ,
123122bytes-1 byte gracias a ceilingcat
Pruébalo en línea!
fuente
main()
o#include
paraprintf
?gcc
(solo genera advertencias, pero se compila bien) es válido.#include
era solo un error porque todavía estaba compilando como C ++, pero todavía no podía hacer que compilara sin cambiar el nombre de su funciónmain
.cQuents ,
9389 bytesPruébalo en línea!
Tenga en cuenta que a partir de la publicación de TIO no se actualiza a la última versión, por lo que el enlace TIO puede no funcionar.
Explicación
fuente
JavaScript (Node.js) , 132 bytes
Probablemente muy apto para el golf. Genera la línea "doo doo", luego crea tres de esos con el "!" línea después, y repite esto para cada tiburón.
Pruébalo en línea!
fuente
jq, 87 caracteres
Ejecución de muestra:
Pruébalo en línea!
fuente
TeX simple, 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
Más bien decepcionante, pero no he publicado una respuesta TeX en años. Los bucles son muy detallados en teX (y el bucle sobre las cadenas ni siquiera está incorporado, por lo que incluso esto es un poco exagerado)
fuente
PHP ,
153147 bytesGracias a @manatwork por guardar 6 bytes al señalar que
str_pad('',23'doo ');
es más corto quertrim(str_repeat('doo ',6));
Pruébalo en línea!
fuente
$d='doo doo doo doo doo doo'
es más corto que esa combinaciónrtrim()
+str_repeat()
. :( Pero afortunadamente$d=str_pad('',23,'doo ')
es aún más corto. Para obtener más consejos de optimización, consulte Consejos para jugar golf en PHP .