"Baby Shark" adalah lagu anak-anak tentang keluarga hiu. Telah lama populer sebagai lagu api unggun, telah dipopulerkan sejak pertengahan 2000-an oleh media sosial, video online dan radio. - Wikipedia
Tulis program yang tidak mengambil input, dan tulis teks berikut ke output standar atau file arbitrer:
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!
Ini adalah kode golf - kode terpendek menang.
Menemukan ini di Reddit ^ 1 ^ 2 , dan sepertinya ini tantangan yang menarik untuk golf.
Pembaruan:
Tidak ada baris baru di antara bait, yang membuatnya terlalu mudah :)
Memimpin / mengikuti baris baru tidak apa-apa.
Jawaban:
SOGL , 40 byte
Coba di sini!
sumber
Emojicode, 292 byte (140 karakter)
Menjalankannya
Diperluas:
Dijelaskan (per Emojicode doc):
Sama dengan a
{
dan}
(mis. Blok kode)"Program mulai" (mis.
int main()
)Penugasan variabel (mis.
const char* b = "Baby";
)Mengatakan, buat daftar nilai antara 🍨 dan 🍆 dan tetapkan (➡️) ke
f
(misalnyaconst char* f[] = {b,y,o,g,a};
)Baris ini mengatakan untuk mengulang elemen-elemen dalam
f
menggunakan aliasm
, di mana...
kode adalah antara 🍇 dan 🍉.Baris ini mengatakan untuk mengulangi rentang [0,3), di mana
...
kode adalah antara 🍇 dan 🍉.Baris ini mengatakan untuk mencetak format yang ditentukan dalam
...
(misalnyaprintf("%s\n");
)Kode diterjemahkan ke C:
Setelah ini, kode asli (diposting di bawah untuk keturunan) memiliki beberapa masalah; sebagian besar bahwa blok was tidak termasuk untuk mereka yang ingin menjalankannya, dan emoji itu sebenarnya tidak benar-benar lolos, untuk itu, di sini adalah versi aktual dari kode itu:
Asli dimodifikasi untuk dijalankan: Emojicode, 224 byte (67 karakter)
Diperluas:
Yang menghasilkan output:
Menjalankannya
Di mana Anda memiliki emoji individu yang mewakili kata-kata:
Asli: Emojicode, 138 byte (47 karakter)
Diperluas:
sumber
IBM PC DOS, 8088 assembly,
115114109108 byteBelum dirakit:
Keluaran
Unduh SHARK.COM!
sumber
Download SHARK.COM!
, saya langsung memikirkan virus komputer.Python 2 , 93 byte
Cobalah online!
94 byte
Cobalah online!
sumber
05AB1E ,
5041 byteBagian terakhirDan saya benar, -9 byte terima kasih kepada @Emigna (bahkan lebih dari yang saya harapkan).v4FN3Qiy'!«ë…doo6иyšðý},
pasti bisa golf sedikit ..Cobalah online.
Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Cara menggunakan kamus? ) Untuk memahami mengapa
“‡ÍÊТ×myîºpaîºma“
ini"baby daddy mommy grandpa grandma"
dan'ã¢
itu"shark"
.sumber
v…doo6иyšÐy'!«»
»
!PowerShell,
888685807976 byte-5 byte terima kasih kepada @mazzy
-1 byte terima kasih kepada @ Joey
-3 byte terima kasih kepada @AdmBorkBork
Cobalah online!
Kita tentu saja sudah jauh.
PowerShell (dengan Text to Speech), 156 byte
Ini BUKAN untuk spec, tapi itu agak lucu. Terima kasih kepada @rkeet untuk idenya!
.NET Teks ke ucapan pengucapan adalah ... yah ... menarik. Ingatlah hal ini saat mendengarkan. Nikmati!
sumber
"$_ Shark"
ke variabel dan menggunakannya kembali.echo
sebagai gantinya-split
.Java (JDK) , 135 byte
Cobalah online!
sumber
repeat
metodenya, ini versi 11+Retina 0.8.2 ,
777574 byteCobalah online! Penjelasan:
Masukkan relasi pada baris yang berbeda.
Perluas menjadi empat baris.
Perluas placeholder.
6968 byte di Retina 1:Cobalah online! Penjelasan:
Masukkan relasi pada baris yang berbeda.
Tambahkan Shark ke masing-masing.
Perluas seluruh ayat.
sumber
Python 3,
1059796 byteCobalah online!
Solusi Python 3 yang sederhana. (9 byte disimpan oleh Jo King dan Quintec)
sumber
' doo'*6
tidak perlu dan Anda memiliki ruang kosong yang tidak perlu di sana[]
itu tuple bukan daftar, tapi itu tidak relevan dengan program inix+' Shark'
ke variabelHaskell ,
122113108106104 bytesCobalah online!
"aaa">>x
mereplikasix
3 kali, seperti yang"aaa"
panjang 3.s>>" doo"
mereplikasi" doo"
6 kali, seperti yang" Shark"
memiliki panjang 6!2 byte disimpan berkat @Fox
sumber
main=putStr
. Lihat juga ringkasan aturan Haskell .s>>
.m=(stuff)
hanya bisam=stuff
untuk dua byte lebih sedikitdo
-notation: Cobalah online!Perl 6 ,
7978 byteCobalah online!
Cukup mudah.
Penjelasan:
sumber
JavaScript, 104 byte
Lebih banyak golf untuk diikuti.
Cobalah secara Online!
sumber
console.log()
, Anda dapat menjadikannya bukan deklarasi lambda (hanya mendapatkan 10 karakter)bash, 78 byte
TIO
73 byte jika ruang trailing diizinkan
sumber
/// , 124 byte
Cobalah online!
sumber
> <> ,
158115 byteMenyimpan banyak byte berkat Jo King
Cobalah online! Anda mungkin juga ingin menempelkan kode di fishlanguage.com , di mana Anda dapat melihat animasi saat
berenang.sumber
PostgreSQL,
162156138 byteTidak disatukan
Disimpan
624 byte, terima kasih@Nahuel Fouilleul
!||
sebagai ganticoncat()
unnest('{foo,bar}'::text[])
sebagai gantiregexp_split_to_table('foo,bar')
DB <> biola
sumber
||
bukannya Viewselect 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 byte
Cobalah online!
Ini adalah pengoptimalan solusi Haskell oleh starsandspirals . Trik baru adalah untuk beralih di atas baris setiap bait dengan loop batin, dan bergabung dengan garis menggunakan
unlines
, menyimpan kebutuhan untuk secara eksplisit memasukkan baris baru.Akhiran dari empat garis
[a,a,a,"!"]
, manaa
yang" doo"
direplikasi 6 kali dengana=s>>" doo"
, di mana starsandspirals cerdik menggunakan kembali enam karakter panjangs=" Shark"
. Menulis[a,a,a,...]
terlihat agak konyol, tetapi saya tidak melihat cara yang lebih pendek.Versi list-monad memiliki panjang yang sama tetapi terlihat keren.
Cobalah online!
sumber
Ruby , 82 byte
Cobalah online!
sumber
R ,
131122120 byte-9 byte terima kasih kepada Giuseppe
-2 byte lagi, juga Giuseppe
Cobalah online!
Cukup bangga dengan ini sebenarnya, terutama dengan R yang agak miskin dalam menangani string. Saya mulai menggunakan
cat(sapply(...))
, tetapi menyadari loop for mencukur beberapa byte.Menyalahgunakan
"?"=c
secara signifikan mengurangi jumlah kurung yang dibutuhkan.Saya juga mencoba melakukan
"*"=rep
untuk mengulangi baris individual dari bait dan "doos", tetapi itu tidak memotong byte.111 byte
Solusi alternatif Giuseppe dan ASCII saja, (dan lebih baik) yang memperbaiki beberapa masalah jarak.
Cobalah online!
sumber
PHP, 104 byte
Jalankan dengan
php -nr '<code>'
atau coba online .sumber
C # (Visual C # Interactive Compiler) ,
153131 byteTerima kasih kepada @Destrogio karena telah menghemat 30 byte!
Cobalah online!
sumber
R ,
126125 byteIni tidak terasa sepintar jawaban CT Hall atau Sumner18 , tetapi dengan menghindari overhead dari mendefinisikan variabel, hasilnya menjadi lebih kecil.
Cobalah online!
Sunting: Disimpan 1 byte dengan menggunakan carriage return sesuai komentar oleh Jonathan Frech
sumber
\n
mengembalikan byte byte Anda kembali.R ,
139138137 byteMungkin ada cara yang lebih baik untuk melakukan 'doo tetapi saya tidak bisa mendapatkannya.
Sunting:
Diganti '\ n' dengan baris baru yang sebenarnya atas saran JDL;
Dihapus mengikuti baris baru atas saran Giuseppe.
Cobalah online
sumber
ketika Anda secara
kebetulankehilangan100negaramendukungnegarabagian-123.065121.716113.695100.88998.554 byteProgram
Saya akan golf ini nanti.Selesai.Saya akan bermain golf ini lebih banyak (nanti)Selesai.Saya akan bermain golf ini lebih lama lagi.SELESAI.Saya akan mendapatkan jumlah byte hingga 5 digit nanti.YAY.Saya akan mendapatkan jumlah byte hingga 4 digit (saya tidak tahu apakah ini mungkin, tetapi saya tahu tidak mungkin untuk mendapatkan 3 digit dengan pendekatan saya saat ini).
sumber
C (gcc) ,
123122 byte-1 byte berkat ceilingcat
Cobalah online!
sumber
main()
, atau#include
untukprintf
?gcc
(hanya menghasilkan peringatan, tetapi mengkompilasi dengan baik) itu valid.#include
itu hanya kesalahan karena saya masih mengkompilasi sebagai C ++, tapi saya masih tidak bisa mengkompilasinya tanpa mengubah nama fungsi Anda menjadimain
.cQuents ,
9389 bytesCobalah online!
Perhatikan bahwa pada saat memposting TIO tidak diperbarui ke versi terbaru, maka tautan TIO mungkin tidak berfungsi.
Penjelasan
sumber
JavaScript (Node.js) , 132 byte
Mungkin sangat golf. Buat baris "doo doo", lalu buat tiga dari mereka dengan "!" baris setelah, dan ulangi ini untuk setiap hiu.
Cobalah online!
sumber
jq, 87 karakter
Contoh dijalankan:
Cobalah online!
sumber
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
Agak mengecewakan, tapi saya belum mengirim jawaban TeX di usia. Loop sangat bertele-tele dalam teX (dan looping pada string bahkan tidak built-in jadi bahkan ini sedikit peregangan)
sumber
PHP ,
153147 byteTerima kasih kepada @manatwork karena telah menghemat 6 byte dengan menunjukkan
str_pad('',23'doo ');
lebih pendek darirtrim(str_repeat('doo ',6));
Cobalah online!
sumber
$d='doo doo doo doo doo doo'
lebih pendek dari kombinasirtrim()
+ itustr_repeat()
. :( Tapi untungnya$d=str_pad('',23,'doo ')
lebih pendek. Untuk kiat pengoptimalan lebih lanjut, lihat Kiat bermain golf di PHP .