唱小鲨鱼


68

《小鲨鱼》是一首有关鲨鱼家庭的儿童歌曲。早已作为篝火歌流行,但自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上发现了它,这似乎对高尔夫来说是一个有趣的挑战。

更新:

节之间没有换行符,这太容易了:)

引导/尾随换行符是可以的。


6
每个节(每个鲨鱼)之间的换行符是否可以接受?(这就是我看过歌词的方式)
Quintec

6
嗯,缺少一些经文,就像所有有关游泳者在鲨鱼袭击中游泳和失去肢体的经文一样。
mbomb007

2
“ doo doo doo doo doo doo”确实过于简化。
R.,

26
作为父母,我感到最强烈的渴望去投票反对这一选择。我要抑制这种冲动,因为这不是Stack Exchange的工作方式。但是,如果今天晚些时候我在哼哼“ doo doo doo doo”,我会回到这里,对你负责!
Cort Ammon

5
现在,这在HNQ上毁了多少人的日子?
CactusCake

Answers:



74

Emojicode,292个字节(140个字符)

🏁🍇🔤Baby🔤➡️b🔤Daddy🔤➡️y🔤Mommy🔤➡️o🔤Grandpa🔤➡️g🔤Grandma🔤➡️a🔤 Shark🔤➡️s🔤 doo🔤➡️d🍨b y o g a🍆➡️f🔂m f🍇🔂i🆕⏩⏩0 3❗️🍇😀🍪m s d d d d d d🍪️❗️🍉😀🍪m s🔤!🔤🍪❗️🍉🍉

运行

展开:

🏁🍇
  🔤Baby🔤 ➡️ b
  🔤Daddy🔤 ➡️ y
  🔤Mommy🔤 ➡️ o
  🔤Grandpa🔤 ➡️ g
  🔤Grandma🔤 ➡️ a
  🔤 Shark🔤 ➡️ s
  🔤 doo🔤 ➡️ d
  🍨b y o g a🍆➡️f
  🔂m f🍇
    🔂i🆕⏩⏩0 3❗️🍇
      😀🍪m s d d d d d d🍪️❗️
    🍉
    😀🍪m s🔤!🔤🍪❗️
  🍉
🍉

解释(根据Emojicode文档):

🍇🍉

{和和}(例如,代码块)相同

🏁

“程序启动”(例如int main()

🔤Baby🔤 ➡️ b

变量分配(例如const char* b = "Baby";

🍨b y o g a🍆➡️f

说,创建一个介于🍨和between之间的值的列表,并将(➡️)分配给f(例如const char* f[] = {b,y,o,g,a};

🔂m f🍇 ... 🍉

这行代码表示f使用别名循环元素m,其中...is和🍉之间的代码。

🔂 i 🆕⏩⏩ 0 3❗️🍇 ... 🍉

这行代码表示要在[0,3)范围内循环,其中...is和between之间的代码。

😀🍪 ... 🍪️❗️

这行说要打印中指定的格式...(例如printf("%s\n");

将代码转换为C:

#include <stdio.h>

int main() {
  const char* b = "Baby";
  const char* y = "Daddy";
  const char* o = "Mommy";
  const char* g = "Grandpa";
  const char* a = "Grandma";
  const char* s = " Shark";
  const char* d = " doo";
  const char* f[] = {b,y,o,g,a};
  int m = 0, i = 0;
  for (; m < 5; ++m) {
    for (i = 0; i < 3; ++i) {
      printf("%s%s%s%s%s%s%s%s\n", f[m], s, d, d, d, d, d, d);
    }
    printf("%s%s!\n", f[m], s);
  }
  return 0;
}

此后,原始代码(以下为后代而发布)出现了一些问题;大多数情况下,想要运行它的人不包含🏁🍇🍉块,并且表情符号实际上并未正确转义,因此,这是该代码的实际运行版本:

原始修改为运行:Emojicode,224个字节(67个字符)

🏁🍇🍨🔤👶🔤🔤👨🔤🔤🤱🔤🔤👴🔤🔤👵🔤🍆➡️f🔂m f🍇🔂i🆕⏩⏩0 3❗️🍇😀🍪m🔤🦈💩💩💩💩💩💩🔤🍪️❗️🍉😀🍪m🔤🦈!🔤🍪❗️🍉🍉

展开:

🏁🍇
  🍨
    🔤👶🔤
    🔤👨🔤
    🔤🤱🔤
    🔤👴🔤
    🔤👵🔤
  🍆 ➡️ f
  🔂 m f 🍇
    🔂 i 🆕⏩⏩ 0 3❗️🍇
      😀🍪m🔤🦈💩💩💩💩💩💩🔤🍪️❗️
    🍉
    😀🍪m🔤🦈!🔤🍪❗️
  🍉
🍉

产生输出:

👶🦈💩💩💩💩💩💩
👶🦈💩💩💩💩💩💩
👶🦈💩💩💩💩💩💩
👶🦈!
👨🦈💩💩💩💩💩💩
👨🦈💩💩💩💩💩💩
👨🦈💩💩💩💩💩💩
👨🦈!
🤱🦈💩💩💩💩💩💩
🤱🦈💩💩💩💩💩💩
🤱🦈💩💩💩💩💩💩
🤱🦈!
👴🦈💩💩💩💩💩💩
👴🦈💩💩💩💩💩💩
👴🦈💩💩💩💩💩💩
👴🦈!
👵🦈💩💩💩💩💩💩
👵🦈💩💩💩💩💩💩
👵🦈💩💩💩💩💩💩
👵🦈!

运行

您在其中的各个表情符号代表以下单词:

👶 -> Baby
👨 -> Daddy
🤱 -> Mommy
👴 -> Grandpa
👵 -> Grandma
🦈 -> Shark
💩 -> doo

原始:Emojicode,138个字节(47个字符)

🍨👶👨🤱👴👵🍆➡️f🔂m f🍇🔂i🆕⏩⏩0 3❗️🍇😀m🦈💩💩💩💩💩💩❗️🍉😀m🦈!❗️🍉

展开:

🍨👶👨🤱👴👵🍆➡️f
🔂m f🍇
  🔂 i 🆕⏩⏩ 0 3❗️🍇
    😀 m 🦈💩💩💩💩💩💩❗️
  🍉
  😀 m 🦈!❗️
🍉

31
创造力的要点,但这并不能产生所需的输出
Jo King

15
欢迎光临本站!随着JoKing的到来,我们要求答案必须完全符合这里的问题。这意味着,尽管您对挑战的解释很有创造力,但此答案应固定下来以产生正确的输出或删除。
小麦巫师

12
尽管此答案很有创意,但它不符合挑战的要求,因此是无效的-必须严格按照挑战中的说明输出文本。
麦戈

8
请修改此答案以产生正确的输出,或删除它。
mbomb007

6
欢迎光临本站!当我尝试在线运行此代码时,出现错误。(它也计算98个字符而不是94个字符)。我想念什么吗?
DJMcMayhem

31

IBM PC DOS,8088组件, 115 114 109 108字节

bd43 01e8 1600 bd48 01e8 1000 bd4e 01e8 0a00 bd54 01e8 0400 c646 056d b409 b103
8bd5 cd21 ba5c 01cd 21e3 1249 b306 ba63 01cd 214b 75fb ba69 01cd 21eb e3ba 6801
cd21 c342 6162 7924 4461 6464 7924 4d6f 6d6d 7924 4772 616e 6470 6124 2053 6861
726b 2420 646f 6f24 210d 0a24

未组装:

    MOV  BP, OFFSET BABY        ; Baby Shark
    CALL VERSE
    MOV  BP, OFFSET DADDY       ; Daddy Shark
    CALL VERSE
    MOV  BP, OFFSET MOMMY       ; Mommy Shark
    CALL VERSE
    MOV  BP, OFFSET GRAND       ; Grandpa/ma Shark
    CALL VERSE
    MOV  BYTE PTR [BP+5], 'm'   ; change 'p' to 'm'                 
                                ; fall through for last VERSE                               

; display a shark verse
; input: BP: address of shark name string
; output: display full verse for shark
VERSE   PROC
        MOV  AH, 9              ; DOS API display string function
        MOV  CL, 3              ; loop verse three times
LOOP_VERSE:
        MOV  DX, BP             ; load shark name from BP
        INT  21H                ; display shark name
        MOV  DX, OFFSET SHARK   ; load 'Shark'
        INT  21H                ; display 'Shark'
        JCXZ LAST_VERSE         ; if last verse, skip to !
        DEC  CX                 ; decrement verse count
        MOV  BL, 6              ; loop 'doo' 6 times
        MOV  DX, OFFSET DOO     ; load 'doo' string
LOOP_DOO:
        INT  21H                ; display 'doo'
        DEC  BX                 ; decrement doo count
        JNZ  LOOP_DOO           ; if not zero, start again
        MOV  DX, OFFSET CRLF    ; load CRLF string
        INT  21H                ; display CRLF
        JMP  LOOP_VERSE
LAST_VERSE:
        MOV  DX, OFFSET BANG    ; display !, CRLF
        INT  21H
        RET
VERSE   ENDP

BABY    DB  'Baby$'
DADDY   DB  'Daddy$'
MOMMY   DB  'Mommy$'
GRAND   DB  'Grand'
PA      DB  'pa$'
SHARK   DB  ' Shark$'
DOO     DB  ' doo$'
BANG    DB  '!'
CRLF    DB  0DH,0AH,'$'

输出量

DOS DIR, SHARK

下载SHARK.COM!

  • -5个字节,感谢@Deadcode

6
你绝对是疯子。
MGOwen

5
当您说时Download SHARK.COM!,我立即想到了计算机病毒。
MilkyWay90

@gwaugh我在开玩笑
MilkyWay90

@gwaugh但这是109个字节
MilkyWay90

21

Python 2,93字节

for w in"Baby Daddy Mommy Grandpa Grandma".split():w+=" Shark";print(w+" doo"*6+"\n")*3+w+"!"

在线尝试!

94字节

for w in"Baby Daddy Mommy Grandpa Grandma".split():print((" doo"*6+"\n%s Shark"%w)*4)[25:]+"!"

在线尝试!


16

05AB1E50 41 字节

“‡ÍÊТ×myîºpaîºma“#ð«'㢫™v…doo6иyšÐy'!«»

最后一部分v4FN3Qiy'!«ë…doo6иyšðý},肯定可以打些高尔夫球。.我是对的,感谢@Emigna(比我期望的还要多)-9个字节。

在线尝试。

说明:

“‡ÍÊТ×myîºpaîºma # Push dictionary string "baby daddy mommy grandpa grandma"
 #                 # Split by spaces: ["baby","daddy","mommy","grandpa","grandma"]
  ð«               # Append a space to each
    '㢫          '# Append dictionary string "shark" to each
                  # Title-case each word
v                  # Loop `y` over these strings
 doo              #  Push string "doo"
     6и            #  Repeat it 6 times as list
       yš          #  Prepend the string `y` at the front of the list
         Ð         #  Triplicate this list
 y'!«             '#  Push string `y`, concatted with a "!"
 »                 #  Join everything on the stack by newlines
                   #  (and each list implicitly by spaces)
                   # (and after the loop, output the result implicitly)

请参阅我的05AB1E技巧(如何使用字典?部分),以了解为什么“‡ÍÊТ×myîºpaîºma“"baby daddy mommy grandpa grandma"'ã¢"shark"


2
您可以使用v…doo6иyšÐy'!«»
Emigna

@Emigna您甚至比我想像的还要打高尔夫球,谢谢!使用一式三份和»
凯文·克鲁伊森

14

PowerShell,88 86 85 80 79 76字节

@mazzy --5字节,@ Joey
-1字节-@ AdmBorkBork,
-3字节

echo Baby Daddy Mommy Grandpa Grandma|%{,(($a="$_ Shark")+" doo"*6)*3;"$a!"}

在线尝试!

我们当然走了很长一段路。

PowerShell(带有文本到语音),156字节

这不符合规范,但有点可笑。感谢@rkeet的想法!

Add-Type -a System.Speech;echo Baby Daddy Mommy Grandpa Grandma|%{(New-Object Speech.Synthesis.SpeechSynthesizer).Speak((($a="$_ Shark")+" doo"*6)*3+" $a")}

.NET文本到语音的发音是...很好...很有趣。聆听时请记住这一点。请享用!



1
您可以通过分配"$_ Shark"一个变量并重新使用它来保存另一个字节。
乔伊(Joey)

2
使用echo代替76个字节-split
AdmBorkBork

1
我认为您也应该在其中输入“文字到语音”:p对于它的地狱试图将其与这段代码进行一些组合,效果
不佳

@rkeet挑战已接受!我目前对此感到困惑。
加布里埃尔·米尔斯


9

视网膜0.8.277个 75 74字节


Baby¶Daddy¶MommyGpaGma
G
¶Grand
.+
$&s$&s$&s$&S!
s
S6$*O¶
O
 doo
S
 Shark

在线尝试!说明:


Baby¶Daddy¶MommyGpaGma
G
¶Grand

在单独的行上插入关系。

.+
$&s$&s$&s$&S!¶

展开为四行。

s
S6$*O¶
O
 doo
S
 Shark

展开占位符。

视网膜 1中的69 68个字节:


Baby¶Daddy¶MommyGpaGma
G
¶Grand
.+
$& Shark
.+
3*$($&6*$( doo)¶)$&!

在线尝试!说明:


Baby¶Daddy¶MommyGpaGma
G
¶Grand

在单独的行上插入关系。

.+
$& Shark

将鲨鱼附加到每个。

.+
3*$($&6*$( doo)¶)$&!

展开整节经文。


9

Python 3,105 97 96字节

for x in"Baby","Daddy","Mommy","Grandpa","Grandma":z=x+' Shark';print((z+' doo'*6+"\n")*3+z+"!")

在线尝试!

一个简单的Python 3解决方案。(Jo King和Quintec保存了9个字节)


2
周围的括号' doo'*6是不必要的,并且那里没有多余的空格
Quintec

1
quintec说了什么... 97个字节
Jo King

2
@ReverseCold从技术上讲没有[]元组而不是列表,但这与该程序无关
Stephen

2
通过设置x+' Shark'为变量来获取96个字节
Jo King

1
这似乎在2.7中也有效?
uhoh

9

Haskell中122个 113 108 106 104字节

s=" Shark";m=do x<-words"Baby Daddy Mommy Grandpa Grandma";("aaa">>x++s++(s>>" doo")++"\n")++x++s++"!\n"

在线尝试!

  • "aaa">>x复制x3次,"aaa"长度为3。

  • s>>" doo"复制" doo"6次," Shark"长度为6!

  • @Fox节省了2个字节

  • @Laikoni节省了2个字节

2
欢迎光临本站!我们只允许生成一个固定的输出字符串作为表达式,所以您可以省略main=putStr。另请参见Haskell规则摘要
xnor

1
欢迎来到PPCG。节省开支s>>
毛茸茸的

@xnor感谢您的链接!
starsandspirals

1
m=(stuff)只能m=stuff少两个字节
Fox

1
通过do-notation 使用104个字节:在线尝试!
Laikoni

7

Perl 6的79 78个字节

(<Baby Daddy Mommmy Grandpa Grandma>X~" Shark"X~ |((" doo"x 6)xx 3),'!')>>.say

在线尝试!

很简单

说明:

 <...>X~                                  # Combine family members
        " Shark"X~                        # With "Shark" and
                   |((" doo"x 6)xx 3)     # doo repeated 6 times then 3 times
                                     ,'!' # Then !
(                                        )>>.say  # And print each line

7

JavaScript,104个字节

还有更多的高尔夫运动。

_=>`Baby
Daddy
Mommy
Grandpa
Grandma`.replace(/.+/g,x=>(s=(x+=` Shark`)+` doo`.repeat(6)+`
`)+s+s+x+`!`)

在线尝试!


1
从技术上讲,这不是有效的解决方案,因为它既不会写入文件也不会记录日志。尽管如果通过用换console.log()
行使

3
@Delioth,从函数返回在此站点上完全有效。看看Meta作为我们的默认I / O规则。
毛茸茸的

2
我通常会同意,但是这个问题专门指出程序“将以下文本写入标准输出或任意文件”
Delioth



5

> <>158 115字节

多亏了Jo King,节省了很多字节

>4>1-&0'krahS '0l3-.
~ ^oa~<
ooo:?!/1-'ood 'o
\ao'!'^?$6:&~
\!?:o
^'ybaB'
^'yddaD'
^'ymmoM'
^'apdnarG'
^'amdnarG'
;

在线尝试!您可能还需要将代码粘贴在fishlanguage.com,在那里你可以看到它的动画游泳运行。


121个字节,主要是通过将婴儿/爸爸/ ...重新排列为多行而不是一行。高尔夫还有更多
乔·金


@JoKing Ah,谢谢。我倾向于假设(主要是通过与BitCycle一起工作),行越少越好,但是在这种情况下,由于字符串长度不同,这是不正确的。
DLosc

5

PostgreSQL,162 156 138字节

select a||' Shark'||replace(b,'1',repeat(' doo',6))from unnest('{Baby,Daddy,Mommy,Grandpa,Grandma}'::text[])a,unnest('{1,1,1,!}'::text[])b

不打高尔夫球

select 
    a || ' Shark' || replace(b,'1',repeat(' doo',6))
from unnest('{Baby,Daddy,Mommy,Grandpa,Grandma}'::text[]) a
    ,unnest('{1,1,1,!}'::text[]) b

由于节省了6个 24字节@Nahuel Fouilleul

  • 采用 ||代替concat()
  • 采用 unnest('{foo,bar}'::text[])代替regexp_split_to_table('foo,bar')

DB <>小提琴


1
-6字节使用||而不是concat 在DB Fiddle上查看
Nahuel Fouilleul

1
select a||' Shark'||replace(b,'1',repeat(' doo',6))from unnest('{Baby,Daddy,Mommy,Grandpa,Grandma}'::text[])a,unnest('{1,1,1,!}'::text[])b
Nahuel Fouilleul

5

Haskell,97个字节

unlines[x++s++p|x<-words"Baby Daddy Mommy Grandpa Grandma",p<-[a,a,a,"!"]]
s=" Shark"
a=s>>" doo"

在线尝试!

这是starsandspirals 对Haskell解决方案优化。新的技巧是使用一个内部循环遍历每个节的行,并使用进行连接unlines,从而省去了显式插入换行的需要。

这四行的后缀是[a,a,a,"!"],与一起a" doo"复制了6次a=s>>" doo",其中星和螺旋巧妙地重用了六个字符的长度s=" Shark"。写作[a,a,a,...]看起来有点愚蠢,但我没有看到更短的方法。

list-monad版本的长度相同,但是看起来很酷。

unlines$(++).(++s)<$>words"Baby Daddy Mommy Grandpa Grandma"<*>[a,a,a,"!"]
s=" Shark"
a=s>>" doo"

在线尝试!



4

[R 131 122 120个字节

-9字节归功于Giuseppe

-2个以上的字节,也包括Giuseppe

`?`=c
s="Shark"
for(x in "Baby"?"Daddy"?"Mommy"?"Grandpa"?"Grandma")cat(rep("
"?x?s?rep("doo",6),3)?"
"?x?paste0(s,"!"))

在线尝试!

实际上,对此感到非常自豪,尤其是R在处理字符串方面相当差。我开始使用cat(sapply(...)),但是意识到for循环可以节省一些字节。

滥用 "?"=c显着减少了所需的括号数量。

我还尝试"*"=rep重复节和“ doos”的各个行,但这并没有削减任何字节。

111字节

Giuseppe和仅ASCII的替代(更好的)解决方案解决了一些间距问题。

write(paste0(rep(c("Baby","Daddy","Mommy","Grandpa","Grandma"),,,4)," Shark",c(rep(strrep(" doo",6),3),"!")),1)

在线尝试!



与往常一样,感谢您的明智输入@Giuseppe。我应该注意到那些高尔夫球
Sumner18


1
@Giuseppe哇,矢量化,很好。我忘了R具有像这样好的矢量化。114? 也114吗?
仅限ASCII




3

R126125字节

cat(paste(rep(c("Baby","Daddy","Mommy","Grandpa","Grandma"),,,4),c(rep("Shark doo doo doo doo doo doo",3),"Shark!")),sep="
")

这不像CT HallSumner18那样“聪明”的答案,但是通过避免定义变量的开销,它变小了。

在线尝试!

编辑:根据乔纳森·弗雷奇的评论,使用回车符保存了1个字节


您好,欢迎来到PPCG!我已经添加了指向您提到的用户答案的​​链接,以更好地比较您的解决方案。恭喜您,您能为在线验证环境添加链接以简化验证吗?
乔纳森·弗雷希

感谢您的编辑@JonathanFrech。我现在添加了一个链接来在线测试代码(这为我的答案增加了一个字节!)。
BobbyBean

您可以使用实际的新行,而不是\n再次减少字节数。
乔纳森·弗雷奇


1
好吧,我已经完全失望了。有时最简单的选择是最好的。还强调它是多么的困难与R.字符串工作
CT厅

3

[R 139个 138 137字节

s='Shark';d='doo';cat(paste(rep(c('Baby','Daddy','Mommy','Grandpa','Grandma'),e=4),c(rep(paste(s,d,d,d,d,d,d),3),paste0(s,'!'))),sep='
')

可能有更好的方法来执行“ doo”,但我无法做到。

编辑:
在JDL的建议下,将'\ n'替换为实际的新行;
在Giuseppe的建议下删除了结尾的换行符。

在线尝试


欢迎来到ppcg!至少,用文字换行符替换“ \ n”将节省一个字节。
JDL

谢谢,我这样做了,然后才意识到我的输出有点中断,所以我更新了它,可悲的是它导致了更多的字节。
CT厅

我相信您会在尾随换行符再加上一个字节
Giuseppe

3

C(gcc)123字节

-1个字节,感谢ceilingcat

#define A" doo doo"
f(i){for(i=20;i--;)printf("%.7s Shark%s\n","GrandmaGrandpaMommy\0 Daddy\0 Baby"+i/4*7,i%4?A A A:"!");}

在线尝试!


C的规则是什么?无需main(),或#includeprintf
BoBTFish

@BoBTFish:不是特定于C的,但通常允许使用任何函数(名称无关紧要,实际上它可以是未命名的lambda或类似名称)。语言是由它们的(任何)实现定义的,因为它可以工作gcc(仅生成警告,但可以正常编译),因此有效。
ბიმო

我意识到缺少#include只是一个错误,因为我仍在按C ++进行编译,但是如果不将函数重命名为,我仍然无法编译它main
BoBTFish

2

cQuents93 89字节

|
#20&bk)~" Shark"~(" doo"6,Z,Z,bk)~" Shark!"
:"Baby","Daddy","Mommy","Grandpa","Grandma"

在线尝试!

请注意,自发布之日起,TIO尚未更新为最新版本,因此TIO链接可能不起作用。

说明

|                               Set delimiter to newline
#20                             n = 20
   &                            Output first n terms in sequence
                                k = 1
                                First term is
    bk)~" Shark"                 kth term from the third line concatenated to " Shark"
                ~(" doo"6,        concatenated to " doo" repeated 6 times
Z,Z,                            Second and third terms equal the first term
    bk)~" Shark!"               Fourth term is the kth term from the third line concatenated to " Shark!"
                                k += 1, restart

Third line                      5 terms, each a string

2

JavaScript(Node.js),132字节

可能非常高尔夫。生成“ doo doo”行,然后使用“!”创建三个 之后,对每个鲨鱼重复此操作。

a=""
c=" doo"
for(b of["Baby","Daddy","Mommy","Grandpa","Grandma"]){b+=" Shark"
t=b+c+c+c+c+c+c+"\n"
a+=t+t+t+b+"!\n"}console.log(a)

在线尝试!


Javascript中的解决方案稍有更改,但是没有任何收益:a =“”; c =“ doo”; for([[Baby],“ Daddy”,“ Mommy”,“ Grandpa”,“ Grandma”]的b){b + =“ Shark”; t = b + c.repeat(6)+“ \ n”; a + = t + t + t + t + b +“!\ n”} console.log(a)
BogdanBiv

2

jq,87个字符

" Shark"as$s|("Baby Daddy Mommy Grandpa Grandma"/" ")[]|(.+$s+" doo"*6+"\n")*3+.+$s+"!"

样品运行:

bash-4.4$ jq -nr '" Shark"as$s|("Baby Daddy Mommy Grandpa Grandma"/" ")[]|(.+$s+" doo"*6+"\n")*3+.+$s+"!"'
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!

在线尝试!


2

当您意外 丢失 100个 认可国家 /地区时-123,065 121,716 113,695 100,889 98554字节

该程序

我稍后再打高尔夫。做完了

我会(以后)再打高尔夫球

我以后再打高尔夫。完成。

待会我将字节数增加到5位。好极了。

我将字节数增加到4位(我不知道这是否可行,但是我知道用我当前的方法不可能得到3位)。


这到底是什么?我喜欢它
Adrian Zhang

@AdrianZhang一种难以编程的编程语言。另外,该程序看起来像是在尖叫('AAAAAAAAAAA ...')
MilkyWay90

2

普通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中非常冗长(而且甚至没有内置的字符串循环功能,因此即使有点麻烦也是如此)


2

PHP153个 147字节

<?php $s='Shark';$d=str_pad('',23,'doo ');foreach(explode(' ','Baby Daddy Mommy Grandpa Grandma')as$a){echo str_repeat("$a $s $d\n",3),"$a $s!\n";}

感谢@manatwork通过指出str_pad('',23'doo ');比6个字节短来节省6个字节rtrim(str_repeat('doo ',6));

在线尝试!


不幸的是,甚至$d='doo doo doo doo doo doo'比那个rtrim()+ str_repeat()组合还短。:(但幸运的$d=str_pad('',23,'doo ')是更短如需更多优化提示,请参阅。提示为PHP打高尔夫球
manatwork

@manatwork感谢您指出,我已经更新了帖子以反映
EvanBarbour3

1
同时,您还需要一点时间来玩一些:在线尝试!
manatwork

113个字节。欢迎来到PPCG!
毛茸茸的

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.