感恩节要带什么?


40

美国的感恩节将于11月24日到来。许多人将与家人共进晚餐,传统上包括火鸡和许多配菜。这通常意味着家庭成员必须协调谁将带来各种菜肴。在此挑战中,目标是编写一个语言,以其运行的每种语言输出不同的菜肴。

菜单

(选自Wikipedia。以防万一,每行都是一个项目。)

turkey
stuffing
dressing
cranberry sauce
mashed potatoes
gravy
winter squash
sweet potatoes
corn
green beans
green bean casserole
mac and cheese
macaroni and cheese
salad
rolls
biscuits
corn bread
pumpkin pie
apple pie
mincemeat pie
sweet potato pie
pecan pie
apple cider
sweet tea

规则

  • 每个提交必须至少以3种语言运行,每种语言都必须从菜单中输出不同的项目。您不能使用同一语言的多个版本(例如,不能在同一答案中使用Python 2和Python 3)。
  • 每个条目在每种语言的编码中必须具有相同的字节。例如,ɱ是字节0x1D果冻的编码,这对应于¢05AB1E的编码
  • 不同的语言可能使用不同的输出方法,但是条目必须是所有语言的完整程序,并遵循我们默认的允许的IO方法之一
  • 没有程序可以接受输入,但是任何程序都可以打印到STDERR或抛出运行时/编译时错误和警告,只要仍将正确的输出打印到STDOUT或文件即可。
  • 大小写和空格无关紧要。例如,的输出GreenbeAN S仍将计为green beans
  • 由于每1顿美国感恩节饭的中心菜是火鸡,因此必须输出一种语言turkey(忽略大小写和空格)。

计分

以大多数语言产生唯一有效输出的提交将获胜。如果出现平局,则以字节为单位的最短并列项获胜。

是的,火鸡不是唯一的主菜,但我们要假装它是。


1
两个相关的挑战:12
ETHproductions

大小写和空格无关紧要我们可以删除空格吗?说出输出cornbread
Luis Mendo

@LuisMendo是的。
ETHproductions 2016年

1
好吧,我什么也不会带,因为我不住在美国。XD
洛克人

1
@ ConorO'Brien我将允许将null char用作空格。是的,您可以使用不同的BF“方言”。
ETHproductions 2016年

Answers:


32

Pyke,Pyth,Python 2,Foo,Brain ****,GolfScript,实际上,<> <,Gol <> <,认真地,Befunge,裂变,干草堆,13种语言,546字节

当我看到其他10 11 12的语言回答,我不得不添加额外的一个 2 3,我也认真考虑下探Pyth如果仅仅是为了节省字节。(目前有162个)

#\ s[\g\r\a\v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'
print'corn'#))))))))))))))))))))))))]+[--------->++<]>+w.q++[->+++<]>++w.q+++++++++++w.q-----------w.q----------------;))!+f'!n'!i'!s'!s'!e'!r'!d'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))L
'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))
#\25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c|000000
# ,,,,,,,,@0>00000000\#"biscuits"aetteews"

派克:在这里试试! rolls

释放代码行:

#s[\g\r\a  \v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'

#s[\g\r\a  \v\y)w.q) - effectively a comment because # doesn't do anything with an empty stack
\r\o\l\l\ss - sum("r", "o", "l", "l", "s")
p - print(^)
00/ - raise a ZeroDivisionError to stop running code

佩斯:在这里试试! gravy

释放代码行:

#s[\g\r\a  \v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'

#...) - while True:
s[\g\r\a  \v\y) - sum(["g", "r", "a", "v", "y"])
w - input()
.q - quit

)Pyth的所有功能都是为了使其编译而不会在没有输入的情况下出错。


Python 2: corn

第1行是整条评论

第2行打印“玉米”,然后有一条注释

第3行包含字符串文字和注释

第4行以上为注释


Foo:在线试用! biscuits

Foo打印出用双引号(")括起来的所有内容。在这种情况下,我小心地只包含可以应付其他形式的字符串输入的语言(Befunge的特殊情况)。如果final后面有任何文本",也将打印出来。


Brain ****:在线试用! salad

我复制了常量字符串生成器的输出。我必须逃避所有.角色,.q这样才能与Pyth w.一起玩,也可以与Pyke一起玩。我添加了一些额外的-字符,以便在打印.第三行中的另一个字符之前,单元格可以到达正确的位置


GolfScript:在线尝试! cornbread

在GolfScript中,#是注释,直到行尾。

GolfScript解释器看到的内容:

#comment
print'corn'#comment
'bread'#comment

在GolfScript中,无论出于何种原因,都print将接收字符串并将其打印而不带换行符。只需bread打印就足够了。


实际上:在线试用! macandcheese

相关行:

'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))

é - clears the stack of whatever junk was on it before.
'i'n'o'r'a+++++ - create string "aroni"
) - rotate entire stack (effectively comments as stack is only 1 long)
♀1X - pop stack (now empty)
'c'a'm++++ - constructs the string "mac"
'e's'e'e'h'c'd'n'a++++++++ - constructs the string "andcheese"
) - rotate stack (reverse)
+ - "mac" + "andcheese"
� - quit

<> <:仅复制+粘贴 turkey 输出动画


Gol <> <:在线尝试! stuffing

与<> <一样,除了`跳过第一个',仅输出足以打印的字符stuffing


认真:在线试用! macaroniandcheese

相关行:

'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))
é - clears the stack of whatever junk was on it before.
'i'n'o'r'a+++++ - create string "aroni"
) - rotate entire stack (effectively comments as stack is only 1 long)
♀1X - no-op
'c'a'm++++ - constructs the string "mac" + "aroni"
'e's'e'e'h'c'd'n'a++++++++ - constructs the string "andcheese"
) - rotate stack (reverse)
+ - "macaroni" + "andcheese"
. - print stack
0\ó - exit

Befunge:在线试用! sweettea

查看的代码

#s[\g\r\a  \v - |
            ) - | - Directing the stack pointer to the correct place
            é - |
# ,,,,,,,,@0>00000000\#"biscuits"aetteews"

            >                              - change direction of travel
             00000000\#"biscuits           - a load of no-ops `#` skips the opening `"`
                                "aetteews" - add the chars to the stack in reverse order
  ,,,,,,,,@                                - output 8 chars from the stack and exit.

裂变:在线尝试! dressing

代码看了一下:

;))!+f'!n'!i'!s'!s'!e'!r'!d'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))L

其中使用:

;!+f'!n'!i'!s'!s'!e'!r'!d'L
                          L - start an atom going left
                      !d'   - create the character `d` and print it
                              ...
;                           - exit

干草堆(2015):(PECANPIE带有额外的换行符!)

#\
 r
 b
 \25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c

其中的功能是:

  25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c

PECANPIE 用大写字母构造每个大写的ascii代码点,因为它们都在100以下。然后将它们全部打印为字符。


1
哇!从未见过Pyth / Python杂音(我想注释使它更容易)
Esolanging Fruit

您可以删除一些空格,并可能使其更短(macaroni and cheese可以输出为macaroniandcheese
Artyer

@Artyer空间已删除
蓝色

1
@Artyer这不是代码高尔夫
FlipTack

1
等一下,GolfScript输出cornrolls?那没在菜单上……
ETHproductions'Nov

10

CJam05AB1EDipV,4种语言,36 34字节

感谢@DrMcMoylex,节省了2个字节!

"turkey"e#"corn"??"gravy"p&Ssalad

原始36字节代码:

"turkey"e#"corn"??"gravy"p&ddisalad

&和之后d有个<ESC>,即1个字节。因此,显示零宽度字符的代码如下所示:

"turkey"e#"corn"??"gravy"p&Ssalad

贾姆

<ESC>未显示)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           e# push this string
        e#"corn"??"gravy"p&Ssalad  e# comment
                                   e# implicit output

在线尝试!输出turkey

05AB1E

<ESC>未显示)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           # push this string
                                   # STACK: ["turkey"]
        e                          # calculates nPr for the last two values in the stack
                                   # since there is only one value, this evaluates to nothing
                                   # as a result, "turkey" is popped
                                   # STACK: []
         #                         # if true end, since this is false, the program doesn't end
          "corn"?                  # push this string and print it without newlines
                                   # STACK: []
                 ?                 # prints nothing, since there is nothing in stack
                  "gravy"p&Ssalad  # nothing happens here since the stack is already printed using a command and there is NO implicit print now, I think

在线尝试!输出:corn

V

<ESC>显示)

"turkey"e#"corn"??"gravy"p&<ESC>Ssalad
"turkey"e#"corn"??"gravy"p&             Code that writes a newline followed by `rn"??"gravy"p&Ssalad`
                           <ESC>        Enters normal mode
                                S       Deletes line and enters insert mode
                                 salad  Writes salad

在线尝试!输出换行符,后跟salad

<ESC>未显示)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           push this string
                                   STACK: ["turkey"]
        e                          not in the language's database
         #                         push str("turkey") --> "turkey"
                                   STACK: ["turkey"]
          "corn"                   push this string
                                   STACK: ["turkey","corn"]
                ?                  pop "corn", if it is the boolean True (which it isn't) execute the following,
                                   but since it is false, nothing until the next ? gets executed
                                   STACK: ["turkey"]
                 ?                 if-statement end
                                   STACK: ["turkey"]
                  "gravy"          push this string
                                   STACK: ["turkey","gravy"]
                         p&        print turkey and end program
                           Ssalad  irrelevant since program has ended

产出 gravy

注意:python3 dip.py由于转义字符文字,您无法运行然后键入代码。它显示为^[,这使Dip解释器感到困惑,并认为这[是一个命令,并导致错误。

最好的方法是编辑源文件,更改最后一行 dip.py

main(input(">>> "), stack.Stack())

main("\"turkey\"e#\"corn\"??\"gravy\"p&Ssalad", stack.Stack())
exit()

确保包括转义字符文字!现在,将代码原样传递到解释器中,以便它可以理解它("必须像\"这样进行转义)。现在,如果您从命令行运行它,它将解释实际的代码并输出gravy


@ETHproductions我没有看到,反正正在努力……
Kritixi Lithos 16/11/19

@ETHproductions完成!现在,它可以使用三种语言!
Kritixi Lithos

太好了!
ETHproductions 2016年

3
pop "corn"在说明中+1
FlipTack

nitpick和打高尔夫球的技巧:它被称为“正常模式”而不是逃逸模式,并且由于空格不相关,因此您可以更改ddiS
DJMcMayhem

9

MATL / Golfscript / 05AB1E / CJam:4种语言,34 33字节

'TURKEY'%"rolls"#];"corn""bread"s
  • 在MATL中,此输出 TURKEY
  • 在Golfscript中,它输出 rolls
  • 在05AB1E中它输出 corn
  • 在CJam中它输出 cornbread

2
出现大写的任何特殊原因tUrKEY
ETHproductions 2016年

@Ethproductions这样的话,它们在CJam中是有效的语句,并且不会以该语言过早出错
Luis Mendo

实际上,可以全部用大写字母表示。毕竟,火鸡是最重要的菜肴:-)
路易斯·门多

8

C,SH,Python 3中,稔,朱,Brainf **的k - 6种语言,211个 209字节

#define println(x) main(){puts("turkey");}/*
#[
#=
a=''''
echo gravy
'''
println=lambda x:print("biscuits")
# ]#proc println[T](s:T)=echo"rolls"#--[----->+<]>---.++++++++++++.+++.----.
# =##*/
println("salad")

菜单项的语言:

  • C输出 turkey
  • sh输出 gravy
  • Python 3输出 biscuits
  • 尼姆输出 rolls
  • 朱莉娅输出 salad
  • Brainf ** k输出 corn

向@kvill添加Julia感谢!


1
对于相同的字节数,Julia可以挤进去。您可以放下C #include(在中工作gcc)。重命名puts println除之外的所有位置main(),在#=上方添加julia的多行注释打开器,a='''然后更改#*/# =##*/
kvill

您可以通过删除exit和将单引号加入上一行(a='''')来进一步打高尔夫球。sh将发出警告,但允许AFAIU。哦,println[T](s:T)=echo"rolls"为尼姆工作。我最喜欢的语言结合在一起,很好的回答!
kvill

7

ferNANDo /> <> / Gol> <> / 05AB1E / 2貂皮,5种语言,178字节

!v"`"v"!
     <;ooooo"salad"
"<;oooooooo"dressing
1 0
0 1 1 1 0 1 0 0
0 1 1 1 0 1 0 1
0 1 1 1 0 0 1 0
0 1 1 0 1 0 1 1
0 1 1 0 0 1 0 1
0 1 1 1 1 0 0 1
")\"corn""ab"û"aba"Qi"rolls"

7

Befunge-98> <>V,Python 2,05AB1EGol> <>FooHaystack(2015版本)GolfScript,BF,FissionMinkolang 0.15认真地Axo:14种语言,381字节

这是与BlueEyedBeast的合作答案

我决定对这个问题采用2D方法...是的,有7个 2D esolangs!

我从BlueEyedBeast的答案(Foo,GolfScript)中获取了其他语言的灵感

<ESC>Escape的字符文字。

#>!>\'n\'r\'o\'c\,,,,,@'s'a'l'a'dJ,é'g'n+'i+'s+'s+'e+'r+'d+.ó[-]+[----->+++<]>.+++++++++++.+++[->+++<]>++.+[--->+<]>.+++H'turkey'~;oooooooo'sweettea.0-5++++++++fffffffff''`'
#   >99*d1+c3-c89*4+dcc99*2+c!|$l9D3-O93++dOO8+O1+O1-O5+OO1+O95++O.
# >'p'()'u'()'m'()'p'()'k'()'i'()'n'()'p'()'i'()'e'()\
print'biscuits';'pecanpie'#"stuffing"R'c!'o!'r!'n!'b!'r!'e!'a!'d!*<ESC>ddddddSapplepie

Befunge-98

#?!>                                nothing important
  'n                                push 'n'
                                    STACK: [110]
    \                               swap top two stack values (TBH, I'm not really sure what happens in this case)
                                    STACK: [110, 0]
     'r\'o\'c\                      repeat the same for other characters
                                    STACK: [110 114 111 99 0]
              ,,,,,                 output the next 5 top stack values, "corn"
                   @                end program
                                    rest of the code is irrelevant
                                    since program has already stopped

在线尝试!输出corn

> <>

命令以它们出现的顺序显示

                                    enter from the left, direction = right
#                                   mirror, now the direction will change to left
                                    and it wraps around and comes to the right
                                    and reads code from the right to the left
'`'                                 push this
   ' ... 5-0.aetteews'              push this too
                      oooooooo      outputs the top 5 characters of the stack
                              ;     end program

在线尝试!(仅复制和粘贴)输出sweettea

V

             ...<ESC>                 writes stuff over three lines and enters normal mode
                     ddddddS          deletes 3 lines, delete another line and enter insert mode
                            applepie  writes "applepie"

在线尝试!输出applepie(可能要花费约20秒才能运行)

Python 2

                                    # first two lines are comments
print"biscuits";                    # prints "biscuits" and ends statement
                'pecanpie'          # dangling (and ignored) string literal 

在线尝试!(仅复制和粘贴)输出biscuits

05AB1E

#>!>                                # does nothing important
\'n\                                # push 'n' and delete it
     'r\'o\'c\                      # repeat for other characters
              ,,,,,                 # prints 5 times (since there is nothing in stack,
                                    #                 prints nothing)
                   @                # push the index of the top of stack
                    's'a'l'a'd      # push these characters
                              J,    # join them and print them out
                                    # the rest of the code does not matter
                                    # since there is no implicit print
                                    # because we used the print statement

在线尝试!输出salad

高尔> <>

命令以它们出现的顺序显示

                                    enter from the left, direction = right
#                                   mirror, now the direction changes to left
                                    and it wraps around and comes to the right
                                    and reads code from the right to the left
 '                                  starting parsing strings
  `                                 escape next character
   '                                gets escaped
    "                               stop string parsing
     fffffffff                      pushes 15, 8 times
           ++++++++                 adds up the numbers, resulting in 135
                 5-                 subtract 4 from it, 130
                   0                pushes 0
                    0               jumps to (130, 0)

#\'n\'r\'o\'c\,,,,,@'r'o'l'l'sJ, ... H'turkey'~;oooooooo"sweettea.0-5++++++++fffffffff""`"
                                              ^
                                       we are here now

                     ˜              removes value at top of stack, '"'
                      "yekrut"      push this string
                              H     Output stack as characters and halt program

在线尝试!输出turkey

oo

Foo用双引号输出任何内容,这就是为什么我一直小心不要在其他语言中使用任何双引号。由于"stuffing"用双引号引起来,它将被打印出来。

在线尝试!输出stuffing然后有一个错误

干草堆(2015)

由于新版本无效,因此使用了Haystack的2015年(而非2016年)解释器。造成这种情况的解释是haystack.py不是 haystack_new.py

命令以它们出现的顺序显示

#                                 ignored
 \                                reflection (now it moves downwards)
  >                               set direction to right
   99*d1+c                        Output 'R'
          3-c                     Output 'O'
             89*4+dcc             Outputs 'L', newline, 'L'
                     99*2+c!|     Outputs 'S' and ends the program
                                  Note: '!' is ignored by the interpreter

该程序输出

R
O
L
L
S

在此输出之后加上换行符(嘿,空格无关紧要!)

高尔夫脚本

                                    first 2 lines are comments
print'biscuits';                    pushes "biscuits" to the stack and discards it
                'pecanpie'          push this
                          #...      comment
                                    implicit output

在线尝试!输出pecanpie

高炉

我使用https://copy.sh/brainfuck/text.html将文本转换为BF。尽管有很多,输入语句,但BF代码独立于其运行。

在线尝试!输出gravy

裂变

为了开始裂变程序,必须产生一个原子。我们看到这发生在第三行:

..."stuffing"                                Blah blah blah
             R                               Spawns an atom with direction right
              'c                             Gives the atom the mass of 'c''s ASCII value
                !                            Print the atom's mass
                 'o!'r!'n!'b!'r!'e!'a!'d!    Do the same for other characters
                                         *   Destroy atom, end program

在线尝试!输出cornbread

Minkolang v0.15

#                                Doesn't really do anything
 \                               Reflect, moves downwards
  >                              Changes direction to right
    ... !|                       Does stuff in stack, '!' ignores the '|'
          $l9D3 ... ++O          Uses ASCII character codes to print "applecider"
                       .         Ends program

在线尝试!输出applecider

认真地

é                          - clear stack
 'g'n+'i+'s+'s+'e+'r+'d+   - load chars onto stack
                        .  - print stack
                         ó - exit

在线尝试!输出dressing

Axo

(命令按遇到的顺序显示)

#>                                          blah blah
  !                                         rotate direction 90 degrees clockwise

  >                                         go right
   'p'()                                    push char and output
        'u'() ... 'e'()                     repeat for other characters
                       \                    end program

在线尝试!输出pumpkinpie


1
这非常棒:)
ETHproductions 2016年

@ETHproductions谢谢!我
为此

只是一点点挑剔:!在小键盘中,代码从堆栈的顶部开始取0并推入1。因此,程序开始打印时堆栈的内容为[110 114 111 99 1]。ASCII值1的字符不可见(标题开头),因此不会在视觉上影响结果。+1
MildlyMilquetoast 2016年

@MistahFiggins我可以将其更改$,,,,为不输出1(而不更改字节数),但是然后我必须更改所有永久链接... :)
Kritixi Lithos

6

Pushy,Python和Brainfuck

这是我的第一本通俗易懂的文章,所以请不要对我太苛刻...对于那些抱怨字节数的人,它是77字节,但这仅与决胜局有关。

"`turkey`"
print('gravy')
#++++++++++[>++++++++++<-]>-.++++++++++++.+++.----.

Pushy 用领先的换行符打印“土耳其”(以及发送到的消息STDERR):

"        % Print current stack: just a newline as stack is empty
`turkey` % Push to stack
"        % Print the stack: 'turkey'
p        % Primality check on 'y' (121): pushes 0
r        % Integer root of 0: throws error and exits

Python打印'gravy',因为第一行和最后一行被视为注释。

Brainfuck会忽略所有其他字符,除了最后一行的那些字符以外,这些字符会创建并打印单词'corn'


1
字节数是多少?
Kritixi Lithos

1
另外,您不能使用Python 2删除括号并保存2个字节吗?
Kritixi Lithos

@KritixiLithos,这不是代码高尔夫。...–
FlipTack

4
“如果出现平局,则以字节为单位的最短并列项将获胜。”并非完全是代码高尔夫,但您仍然需要字节数。
TuxCrafting's

2
@TùxCräftîñg是的,但是无论如何这都没有机会进入决胜局
FlipTack

4

PipBFoOo CODE> <>Befunge-93Quirkster实现),Ouroboros///:7种语言,175个字节

/'//bisCuItS/`f(>-[--[<]>+>-]<.++++++++++++.+++.----.O@,,,,,,"tuRkey"
"saLaD"1/ooooo;1(
>"YVaRg"^(OoooOoOOoooOoooOOoooOOoOooOooOooOOoOooOooOooOOoOOoOoOOoOOoOOoOOo`OO"sTUfFINg"

点子

在线尝试

一堆被静默丢弃的表达式(如果启用了警告,则大多数都会生成警告),并且表达式"sTufFINg"的末尾会被打印出来。

/ '/ / b      Invert the string "/" and divide it by nil
i s           Two different variables
Cu            Chr(nil)
It            If 10:
S / `...` OO   Invert a Pattern literal and swap it with undefined variable OO
"sTufFINg"    Autoprint this last expression

高炉

在线尝试

>-[--[<]>+>-]<.++++++++++++.+++.----.,,,,注释外,所有内容均不包含注释。此代码生成99(用于字符代码c经由上列出的最短方法)esolangs.org,然后修改它orn。在,,,,尝试输入四个字符,但是这并不影响什么。

代码

除字母以外的所有内容都将被忽略。将字母分为三部分,代码如下:

bis CuI tSf Otu Rke ysa LaD ooo ooY VaR gOo ... OsT UfF INg

并转换为以下BF代码(使用Martin的Retina转换器进行尝试):

>+[-->+><+[<]>-]>.---.---..+++++++.

输出rolls。(而且,有趣的是,它比上面的BF短用于输出corn,即使添加了><空操作以使大小写正确对齐也是如此。)

> <>

在这里运行> <>代码

代码的重要部分:

/
        /ooooo;
>"YVaRg"^

IP向上反射,环绕并向右发送。"YVaRg"按下的字符代码gRaVYooooo输出五个字母并;终止程序。

Befunge-93

该代码取决于未定义的行为,并且可能仅在此实现中有效

代码的重要部分:

/'                        @,,,,,,"tuRkey"

/是分裂。堆栈是空的,所以JavaScript实现我使用分裂00和推动NaN

'是无法识别的字符。我正在使用的实现方便地将无法识别的字符视为Reflect命令。(一少的实现相关的版本,一个可能的替代将是1_。)所以IP那张再次离开,分歧NaN通过0(获得NaN),后回线的另一端。

现在"yekRut"(移动RTL)推送tuRkey,,,,,,输出字符代码。最后,@终止程序。

衔尾蛇

在这里尝试

代码的每一行都是独立执行的“蛇”。

蛇1

由于没有输出指令,因此代码的唯一重要部分是f(:从蛇的末尾f推入15(吞下那么多字符。该代码现在被认为在之后结束.O。执行将持续到蛇的末端,然后循环回到起点。每次穿过时,蛇都会变短,直到最终(被吞噬。由于IP刚被吃掉,这条蛇就停止执行。

蛇2

"saLaD"将其字符代码后推至第一个;1/rby 的字符除以1,使其保持不变,并ooooo输出五个字符。;丢弃一个项目(无操作,因为堆栈已空)。1(吞下指令指针并暂停。

蛇3

"YVaRg"推送一些字符代码;然后(吞下等于堆栈顶部(恰好是89的字符代码)的字符Y。吃89个字符就足以吞下IP并停止执行。

///

使用我的///的Pip实现在线尝试

/'//从程序的其余部分删除所有单引号(不执行任何操作,因为没有引号)。接下来,bisCuItS按原样输出。最后,其余代码是不完整的替换-三个必需的斜杠中只有两个-因此它什么也不做。


我喜欢滥用“大小写无关紧要”规则,使其在oOo代码中起作用:-)
ETHproductions 2016年

3

Cubix,Pushy,Brainfuck,V,Python 2-5种语言,89 85字节

我第二次使用多种语言-不太打高尔夫球,但是它的工作原理是:

"`turkey`";print'salad'#;"nroc"w!@o;"-[--";;;;{{->+<]>---.---.---..+++++++.␛ddgigravy

(请注意,它代表文字转义字节,x1B

  • Cubix打印 corn
  • 活版印刷 turkey
  • Brainfuck印花 ROLLS
  • V版画 gravy
  • Python打印 salad

库比克斯

在线测试程序!

Cubix是挑战作者ETHproductions的一种语言。Cubix解释器读取如下代码:

        " ` t u
        r k e y
        ` " ; p
        r i n t
' s a l a d ' # ; " n r o c " w
! @ o ; " - [ - - " ; ; ; ; { {
- > + < ] > - - - . - - - . - -
- . . + + + + + + + . d d g i ␛
        g r a v
        y . . .
        . . . .
        . . . .

该代码是这样执行的:

  • 'salad -在堆栈上执行了一些不相关的XOR操作,导致 115, 0, 0
  • '#;-推送的字符#,然后再次弹出(无操作)
  • "nroc" -推送“玉米”的字符代码
  • w -将IP移动到下面的下一行:
    • !@o; -打印并弹出最后一个项目(如果项目为0,则终止)
    • "-[--";;;; -推送这些字符并删除它们(无操作)
    • {{ -没有人

急于

在线测试程序!

Pushy是我自己的语言,它运行如下代码:

"          \ Print stack. Empty, so prints newline.
`turkey`   \ Push this string
"          \ Print this string
;          \ "End loop": Ignored as there is no loop in progress.
pr         \ Irrelevant stack operations
i          \ "interrupt": exit program.

脑干

在线测试程序!

Brainfuck会忽略不在其指令列表中的所有字符,从而导致:

-[--->+<]>---.---.---..+++++++.

哪个打印ROLLS。请注意,这需要带有包装单元格的解释器,例如提供的单元格。


V(Vim语言)

在线测试程序!

V由DJMcMayhem(我们的顶级代码高尔夫球手之一)创建。

V是文本编辑器Vim的基于程序的版本。之前的大多数字符都ESC被写入“文件”,但␛ddgigravy删除了所有字符并插入了“肉汁”。程序末尾的文件内容被打印出来。


Python 2

在线测试程序!

Python是我最喜欢的实用语言之一。因为#是Python中的注释,所以大多数程序都将被忽略。代码如下所示:

"`turkey`";            # Unused string literal
print'salad'           # Print statement
#...                   # Comment (everything else is ignored)


次要nitpick:'salad'#实际上将的字符代码0,0和s0 推入#,然后在处;弹出并离开堆栈115,0,0
ETHproductions

@ETHproductions是的,您是对的,实际上不会对程序产生任何影响,但我将修复其描述
FlipTack

2

Python / QBasic / Pip,3种语言,41字节

更多语言可能待定。

1#print"corn":end
print("turkey");"salad"

蟒蛇

1只是一个被丢弃的表达式。#开始评论。print("turkey")做到了它所说的,"salad"是另一个被丢弃的表达式。

QBasic

1#是(双精度)行号。print"corn"做到了它所说的。end终止程序。第二行在语法上有效,但从未执行。

点子

大多数事物都是被丢弃的表达式。"corn":e尝试分配给文字字符串,该字符串会静默失败(除非启用警告)。"salad"是程序中的最后一个表达式,因此被打印。


1

PHP,JavaScript和BrainF * ck,178字节

第一次我尝试过一种多国语言-不说谎,我在这里头晕脑袋...

打高尔夫球:

<!DOCTYPE html><html><body><?php echo "turkey";?></body><script>function A(){alert("stuffing");}//`--[----->+<]>-++.+++++++++++.-----------------.-----------.+++.`
</script></html>

(我不敢用HTML代码编写感恩节的食物,并把它算作另一种语言...)

说明:

需要将代码保存到PHP和JavaScript部分的.php文件中。

PHP:

在PHP服务器上运行时,将读取代码的PHP部分:

<?php echo "turkey";?>

输出:

在此处输入图片说明

JavaScript:

您可以A()从浏览器控制台调用JavaScript 函数:

function A(){alert("stuffing");}

输出:

在此处输入图片说明

Brainf * cK

Brainf * ck部分很好地隐藏在JavaScript部分的注释中,因此PHP和JavaScript部分将其忽略:

--[----->+<]>-++.+++++++++++.-----------------.-----------.+++.

将整个文件粘贴到IDE中时,输出:

在此处输入图片说明

没有这个 text-to-BF网站,我无法完成Brainf * ck部分。我最初是用它来生成“玉米”的代码,然后尝试学习有关这种疯狂语言的知识,然后将其转换为“肉汁” ...或更确切地说是“重力” ...


1

Python,Clojure,Javascript,Ruby:4种语言,113字节

1;''''/*
#_(
puts("turkey")
__END__
);'''
1;1//2;'''
1;*/alert("gravy")/*
(print "salad");'''
#_
print "corn";#*/

感谢@ Sp3000提供了大部分代码。令人惊讶的是,我什至不必对他的原始内容做任何事情,我只需要在Ruby代码之前添加。


1

///,SQL和JavaScript

/*//turkey/\*/select('corn')
--a;function select(){alert('salad')}

与其他面向假日的多语种的结构相同:

///

/*//turkey/../..   Simply prints 'turkey', does no replaces, stops execution because the second /// block is incomplete

的SQL

/*//turkey/\*/    //turkey/\ is seen as a block comment
                  That last \ was added to set apart the following */, completing the block
select('corn')    SQL Select statement, yielding 'corn'
--a;...           Seen by SQL as a comment, ignored

Java脚本

/*//turkey/\*/    //turkey/\ is seen as a block comment
select('corn')    Function call to the function 'select', defined below
--a;              Decrement a, effectively a NOP
function select(){alert('salad')}
                  Defines the function select(), giving us 'salad'

0

Clojure / Common Lisp / PicoLisp,39个字节

(print(if '()'turkey(if""'rolls'corn)))

Lisp家庭在这里。'()在Clojure中计算为true,因此继续输出符号turkey。PicoLisp和Common Lisp进入错误分支;""在Common Lisp中为true,因此它会打印符号rolls;在PicoLisp中,空字符串为false,因此它会打印corn符号。

在线检查:

https://ideone.com/OD65LB - Clojure的

https://ideone.com/M1H5gf – Common Lisp

https://ideone.com/B4x3ns – PicoLisp


0

CJam,欠载,> <>,​​39个字节

'v;"(Turkey)S";"Gravy""
 >'nroC'oooo;";

CJam看到了什么

  • 'v;:立即被丢弃的字符文字
  • "(Turkey)S";:立即被丢弃的字符串文字
  • "Gravy":将字符串推Gravy入堆栈
  • "\n'nroC'oooo;";:立即被丢弃的字符串文字。

在执行结束时,将输出堆栈,这意味着将打印“ Gravy”。

欠载情况

  • 'v;":一些无效的命令被忽略
  • (Turkey)S:推入字符串“土耳其”并输出
  • ";"Gr:一些无效的命令被忽略
  • a注意:由于堆栈为空,因此这会在TIO解释器上造成段错误。执行终止。

> <>看到的内容

  • 'v;"(Turkey)S";"Gravy""将一堆字符压入堆栈(这些字符将被忽略)。IP然后回绕。
  • v 向下发送IP。
  • >'nroC'oooo 将字符串“ Corn”中的字符压入并输出。
  • ;终止执行。所有其他字符将被忽略。
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.