Was bringen Sie zum Erntedankfest mit?


40

Thanksgiving in den Vereinigten Staaten steht am 24. November an. Viele Menschen haben ein großes Abendessen mit ihren Familien, traditionell mit Truthahn und vielen Beilagen. Dies bedeutet normalerweise, dass die Familienmitglieder koordinieren müssen, wer die verschiedenen Gerichte mitbringt. In dieser Herausforderung besteht das Ziel darin , einen Polyglot zu schreiben , der in jeder Sprache , in der er ausgeführt wird, ein anderes Gericht ausgibt.

Speisekarte

(Aus Wikipedia ausgewählt . Falls es nicht offensichtlich ist, ist jede Zeile ein Element.)

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

Regeln

  • Jede Einreichung muss in mindestens 3 Sprachen ausgeführt werden , von denen jede einen anderen Menüpunkt ausgeben muss . Sie dürfen nicht mehrere Versionen derselben Sprache verwenden (z. B. Python 2 und Python 3 können nicht in derselben Antwort verwendet werden).
  • Jeder Eintrag muss in der Codierung jeder Sprache die gleichen Bytes enthalten. Zum Beispiel ɱist Byte 0x1Din Jelly der Codierung , das entspricht ¢in 05AB1E der Codierung .
  • Verschiedene Sprachen können unterschiedliche Ausgabemethoden verwenden, aber Einträge müssen vollständige Programme in allen Sprachen sein und einer unserer standardmäßig zulässigen E / A-Methoden folgen .
  • Es dürfen keine Programme Eingaben machen, aber eines der Programme kann auf STDERR drucken oder Laufzeit- / Kompilierungsfehler und Warnungen ausgeben, solange die korrekte Ausgabe auf STDOUT oder in einer Datei gedruckt wird.
  • Groß- und Kleinschreibung spielen keine Rolle. Beispielsweise GreenbeAN Swürde eine Ausgabe von immer noch als zählen green beans.
  • Da die zentrale Schale jedes 1 amerikanischen Thanksgiving - Essen Truthahn ist, eine Sprache muss Ausgabeturkey (ohne Berücksichtigung Fall und Leerzeichen).

Wertung

Die Einsendung, die eindeutige gültige Ausgaben in den meisten Sprachen liefert, gewinnt. Bei einem Gleichstand gewinnt der kürzeste der gebundenen Einträge in Bytes.

1. Ja, der Truthahn ist nicht das einzige Hauptgericht , aber wir werden so tun, als wäre es das.


1
Zwei verwandte Herausforderungen: 1 , 2
ETHproductions

Groß- und Kleinschreibung und Leerzeichen spielen keine Rolle. Können wir also Leerzeichen entfernen ? Sagen Sie Ausgabecornbread
Luis Mendo

@ LuisMendo Yup.
ETHproductions

1
Nun, ich bringe nichts mit, weil ich nicht in den USA lebe. XD
Mega Man

1
@ ConorO'Brien Ich erlaube das Nullzeichen als Leerzeichen. Und ja, Sie können verschiedene "Dialekte" von BF verwenden.
ETHproductions

Antworten:


32

Pyke, Python, Python 2, Foo, Brain ****, GolfScript, Tatsächlich, <> <, Gol <> <, Ernsthaft, Befunge, Spaltung, Heuhaufen, 13 Sprachen, 546 Bytes

Als ich sah , die andere 10 11 12 Sprach Antwort hatte ich eine extra hinzufügen ein zwei 3. Ich auch unter Berücksichtigung Pyth fallen ernst bin , wenn nur auf Byte zu speichern. (im Moment 162 von ihnen)

#\ 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"

Pyke: Probieren Sie es hier! rolls

Relevante Codezeile:

#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

Pyth: Probieren Sie es hier! gravy

Relevante Codezeile:

#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

Es ist alles )für Pyth, damit es ohne Fehler bei keiner Eingabe kompiliert werden kann.


Python 2: corn

Zeile 1 ist ein ganzer Kommentar

Zeile 2 gibt "Mais" aus und hat dann einen Kommentar

Zeile 3 enthält ein Zeichenfolgenliteral und anschließend einen Kommentar

Ab Zeile 4 sind Kommentare


Foo: Probieren Sie es online! biscuits

Foo druckt alles aus, was in doppelten Anführungszeichen ( ") steht. In diesem Fall habe ich darauf geachtet, nur Sprachen einzubeziehen, die mit anderen Formen der Zeichenfolgeneingabe umgehen können (Sonderfall für Befunge). Wenn es nach dem Finale noch Text "gäbe, würde dieser auch gedruckt.


Gehirn ****: Probieren Sie es online! salad

Ich habe die Ausgabe des konstanten Stringgenerators kopiert. Ich musste mit allen .Charakteren fliehen, .qdamit es mit Pyth und w.Pyke spielte. Ich habe einige zusätzliche -Zeichen hinzugefügt , damit die Zellen die richtigen Punkte erreichen, bevor ein anderes .Zeichen in der 3. Zeile gedruckt wird


GolfScript: Probieren Sie es online! cornbread

In GolfScript #steht ein Kommentar bis zum Zeilenende.

Was der GolfScript-Interpreter sieht:

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

Nimmt in GolfScript aus irgendeinem Grund printeine Zeichenfolge und druckt sie ohne Zeilenumbruch. Nur zu haben breadist genug, um es auch zu drucken.


Eigentlich: Online ausprobieren! macandcheese

Relevante Zeile:

'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

<> <: Nur Kopieren + Einfügen turkey Animation der Ausgabe


Gol <> <: Probieren Sie es online! stuffing

As <> <except `überspringt das erste 'und gibt nur genügend Zeichen zum Drucken ausstuffing


Ernsthaft: Probieren Sie es online! macaroniandcheese

Relevante Zeile:

'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: Online ausprobieren ! sweettea

Code, der betrachtet wird

#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.

Fission: Probieren Sie es online! dressing

Code sah an:

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

Davon werden verwendet:

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

Haystack (2015) : PECANPIE(mit EXTRA Newlines!)

#\
 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

Davon etwas Funktionales tun:

  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

Ich konstruiere jeden ASCII-Codepunkt für die Buchstaben in PECANPIE Großbuchstaben, da sie alle unter 100 liegen. Ich drucke sie dann alle als Zeichen aus.


1
Beeindruckend! Noch nie ein Pyth / Python-Polyglot gesehen (ich denke, Kommentare machen es einfacher)
Esolanging Fruit

Sie können einige Leerzeichen entfernen und es wahrscheinlich kürzer machen ( macaroni and cheesekann ausgegeben werden als macaroniandcheese)
Artyer

@Artyer Leerzeichen entfernt
Blue

1
@Artyer das ist kein Codegolf
FlipTack

1
Warten Sie, GolfScript-Ausgaben cornrolls? Das stand nicht auf der Speisekarte ...
ETHproductions

10

CJam , 05AB1E , Dip , V , 4 Sprachen, 36 34 Bytes

2 Bytes gespart dank @DrMcMoylex!

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

Ursprünglicher 36-Byte-Code:

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

Nach dem &und vor dem dsteht ein <ESC>, welches 1 Byte ist. Der Code mit den aufgedeckten Zeichen der Breite Null sieht also folgendermaßen aus:

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

CJam

( <ESC>wird nicht angezeigt)

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

Probieren Sie es online! Ausgängeturkey

05AB1E

( <ESC>wird nicht angezeigt)

"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

Probieren Sie es online! Ausgänge:corn

V

( <ESC>wird angezeigt)

"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

Probieren Sie es online! gibt eine neue Zeile gefolgt von aussalad

Tauchen

( <ESC>wird nicht angezeigt)

"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

Ausgänge gravy

Hinweis: python3 dip.pyAufgrund des Escape-Zeichenliteral können Sie hierfür keinen Code ausführen und dann eingeben. Es ^[sieht so aus , dass der Dip-Interpreter verwirrt wird und denkt, dass [es sich um einen Befehl handelt. Dies führt zu einem Fehler.

Am besten bearbeiten Sie die Quelldatei und ändern die letzte Zeile in dip.py

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

zu

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

Achten Sie darauf, das Escape-Zeichen-Literal einzuschließen !. Nun wird der Code, wie er ist, an den Interpreter übergeben, damit er ihn verstehen kann ( "muss wie folgt maskiert werden \"). Wenn Sie es nun über die Befehlszeile ausführen, werden der tatsächliche Code und die Ausgaben interpretiert gravy.


@ETHproductions Ich habe nicht gesehen, sowieso daran zu arbeiten ...
Kritixi Lithos

@ETHproductions Fertig! Jetzt funktioniert es in drei Sprachen!
Kritixi Lithos

Coole, schöne!
ETHproductions

3
+1 für pop "corn"in der Erklärung
FlipTack

Ein Trottel und ein Golftipp: Es heißt "normaler Modus" und nicht "Escape-Modus", und da Leerzeichen irrelevant sind, können Sie ddizuS
DJMcMayhem

9

MATL / Golfscript / 05AB1E / CJam : 4 Sprachen, 34 33 Bytes

'TURKEY'%"rolls"#];"corn""bread"s
  • In MATL diese Ausgänge TURKEY .
  • In Golfscript es gibt rolls .
  • In 05AB1E es gibt corn .
  • In CJam es gibt cornbread .

2
Gibt es einen besonderen Grund für die Aktivierung von tUrKEY?
ETHproductions

@Ethproductions Das ist so, dass sie gültige Aussagen in CJam sind und es nicht vorzeitig in dieser Sprache ausfällt
Luis Mendo

Eigentlich können es alle Kappen sein. Immerhin ist die Türkei das wichtigste Gericht :-)
Luis Mendo

8

C, sh, Python 3, Nim, Julia, Brainf ** k - 6 Sprachen, 211 209 Bytes

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

Sprachen zu Menüpunkten:

  • C Ausgänge turkey
  • sh Ausgänge gravy
  • Python 3-Ausgänge biscuits
  • Nim Ausgänge rolls
  • Julia gibt aus salad
  • Brainf ** k Ausgänge corn

Julia dank @kvill hinzugefügt!


1
Julia ist es möglich sich einzudrücken, für den gleichen bytecount. Sie können das C fallen lassen #include(funktioniert in gcc). puts printlnÜberall umbenennen , außer in main(). Füge Julias mehrzeiligen Kommentaröffner #=oben hinzu a='''und ändere ihn #*/zu # =##*/.
kvill

Sie können dies weiter verbessern, exitindem Sie das einfache Anführungszeichen entfernen und mit der vorherigen Zeile verbinden ( a=''''). shwird Warnungen ausgeben, aber dies ist AFAIU erlaubt. Und oh, println[T](s:T)=echo"rolls"arbeitet für Nim. Schöne Antwort mit all meinen Lieblingssprachen zusammen!
kvill

7

ferNANDo /> <> / Gol> <> / 05AB1E / 2sable, 5 Sprachen, 178 Byte

!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, 05AB1E , Gol> <> , Foo , Haystack (Version 2015) , GolfScript , BF, Fission , Minkolang 0.15 , Seriously , Axo : 14 Sprachen, 381 Byte

Dies ist eine gemeinsame Antwort mit BlueEyedBeast

Ich habe mich für einen 2D-Ansatz entschieden ... Ja, es gibt 7 2D-Esolangs!

Ich habe mich von der Antwort von BlueEyedBeast (Foo, GolfScript) für weitere Sprachen inspirieren lassen.

<ESC>ist das buchstäbliche Zeichen für 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

Probieren Sie es online! Ausgängecorn

> <>

Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden

                                    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

Probieren Sie es online! (Nur Kopieren und Einfügen)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"

Probieren Sie es online! Ausgänge applepie(die Ausführung kann ca. 20 Sekunden dauern)

Python 2

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

Probieren Sie es online! (Nur Kopieren und Einfügen)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

Probieren Sie es online! Ausgängesalad

Gol> <>

Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden

                                    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

Probieren Sie es online! Ausgängeturkey

Foo

Foo gibt alles in doppelten Anführungszeichen aus. Deshalb habe ich darauf geachtet, in den anderen Sprachen keine doppelten Anführungszeichen zu verwenden. Da "stuffing"es sich um doppelte Anführungszeichen handelt, wird es gedruckt.

Probieren Sie es online! gibt aus stuffingund hat dann einen Fehler

Heuhaufen (2015)

Dies verwendet Haystacks Interpreter 2015 (nicht 2016), da die neuere Version ungültig ist. Der Dolmetscher dafür ist haystack.pyund nicht haystack_new.py

Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden

#                                 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

Dieses Programm gibt aus

R
O
L
L
S

und eine neue Zeile nach dieser Ausgabe (hey, Whitespace spielt keine Rolle!)

GolfScript

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

Probieren Sie es online! Ausgängepecanpie

BF

Ich habe https://copy.sh/brainfuck/text.html verwendet , um Text in BF zu konvertieren. Obwohl es viele ,Eingabeanweisungen gibt, wird der BF-Code unabhängig davon ausgeführt.

Probieren Sie es online! Ausgängegravy

Fission

Damit ein Fission-Programm gestartet werden kann, muss ein Atom erzeugt werden. Wir sehen dies in der dritten Zeile:

..."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

Probieren Sie es online! Ausgängecornbread

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

Probieren Sie es online! Ausgängeapplecider

Ernsthaft

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

Probieren Sie es online! Ausgängedressing

Axo

(Befehle werden in der Reihenfolge angezeigt, in der sie angetroffen werden.)

#>                                          blah blah
  !                                         rotate direction 90 degrees clockwise

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

Probieren Sie es online! Ausgängepumpkinpie


1
Das ist ziemlich genial :)
ETHproductions

@ETHproductions Danke! Ich habe mir sehr viel Mühe gegeben :)
Kritixi Lithos

Nur ein kleiner Trottel: die! Im befunge Code nimmt eine 0 vom oberen Rand des Stapels und drückt 1. Daher ist der Stapelinhalt, wenn das Programm mit dem Drucken beginnt, [110 114 111 99 1]. Das Zeichen für ASCII-Wert 1 ist nicht sichtbar (Überschriftenanfang) und wirkt sich daher nicht auf das Ergebnis aus. +1
MildlyMilquetoast

@MistahFiggins Ich könnte es einfach ändern, $,,,,anstatt das auszugeben 1(ohne das bytecount zu ändern), aber dann müsste ich alle Permalinks ändern ... :)
Kritixi Lithos

6

Pushy , Python und Brainfuck

Dies ist meine erste Polyglotte, also gehen Sie nicht zu sehr auf mich ein ... Für diejenigen, die über die Anzahl der Bytes jammern, sind es 77 Bytes, aber das ist nur für den Tiebreaker relevant.

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

Pushy druckt 'Truthahn' mit einem führenden Zeilenumbruch (sowie einer Nachricht an 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 gibt "Soße" aus , da die erste und die letzte Zeile als Kommentare behandelt werden.

Brainfuck ignoriert alle anderen Zeichen und abgesehen von denen in der letzten Zeile, die das Wort "Mais" erzeugen und drucken .


1
Was ist die Byteanzahl?
Kritixi Lithos

1
Können Sie Python 2 auch nicht verwenden, um die Klammern zu entfernen und 2 Bytes zu sparen?
Kritixi Lithos

@KritixiLithos das ist kein Codegolf ....
FlipTack

4
"Im Falle eines Gleichstands gewinnt der kürzeste der gebundenen Einträge in Bytes." Es ist nicht ganz Codegolf, aber Sie benötigen immer noch den Bytecount.
TuxCrafting

2
@ TùxCräftîñg wahr, aber das hat sowieso keine Chance, zum Tiebreaker zu gelangen
FlipTack

4

Pip , BF , oOo CODE , > <> , Befunge-93 ( Quirkster- Implementierung), Ouroboros , /// : 7 Sprachen, 175 Bytes

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

Pip

Probieren Sie es online aus

Eine Reihe von Ausdrücken, die stillschweigend verworfen werden (von denen die meisten Warnungen generieren, wenn Warnungen aktiviert sind), wobei der Ausdruck "sTufFINg"am Ende gedruckt wird.

/ '/ / 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

BF

Probieren Sie es online aus

Alles außer >-[--[<]>+>-]<.++++++++++++.+++.----.,,,,Kommentare. Dieser Code erzeugt 99(der Zeichencode für c) über die kürzeste Methode auf aufgeführten esolangs.org , ändert es dann o, rund n. Es wird ,,,,versucht, vier Zeichen einzugeben, dies hat jedoch keine Auswirkungen.

oOo CODE

Alles außer Buchstaben wird ignoriert. Gruppieren Sie die Buchstaben in drei, lautet der Code wie folgt:

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

und übersetzt in diesen BF-Code ( versuchen Sie es mit Martins Retina-Übersetzer ):

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

welche Ausgängerolls . (Und interessanterweise ist es kürzer als die oben angegebene BF für die Ausgabe corn, auch wenn ein ><No-Op hinzugefügt wurde, um die Großschreibung korrekt auszurichten.)

> <>

Führen Sie hier> <> Code aus

Der wichtige Teil des Codes:

/
        /ooooo;
>"YVaRg"^

Die IP wird nach oben reflektiert, umbrochen und nach rechts gesendet. "YVaRg"drückt die Zeichencodes von gRaVY. ooooogibt fünf Buchstaben aus und ;beendet das Programm.

Befunge-93

Der Code hängt von undefiniertem Verhalten ab und funktioniert wahrscheinlich nur in dieser Implementierung .

Der wichtige Teil des Codes:

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

/ist Teilung. Der Stack ist leer, daher wird die von mir verwendete JavaScript-Implementierung 0durch 0und geteilt NaN.

'ist ein unbekannter Charakter. Die Implementierung, die ich verwende, behandelt normalerweise nicht erkannte Zeichen als Reflect-Befehle. (Für eine weniger implementierungsabhängige Version wäre ein Ersatz denkbar 1_.) Die IP-Adresse wird also erneut nach links verschoben, NaNdurch geteilt 0(get NaN) und am anderen Ende der Zeile umgebrochen.

Jetzt "yekRut"(RTL bewegen) drückt die Zeichencodes von tuRkeyund ,,,,,,gibt sie aus. Beendet schließlich @das Programm.

Ouroboros

Probieren Sie es hier aus

Jede Codezeile ist eine "Schlange", die unabhängig ausgeführt wird.

Schlange 1

Da es keine Ausgabeanweisungen gibt, ist der einzige wichtige Teil des Codes f(: fDrückt 15und (verschluckt so viele Zeichen vom Ende der Schlange. Der Code endet nun nach .O. Die Ausführung wird bis zum Ende der Schlange fortgesetzt und zum Anfang zurückgeschleift. Jedes Mal wird die Schlange kürzer, bis sie schließlich (verschluckt wird. Da die IP gerade gefressen wurde, stoppt die Schlange die Ausführung.

Schlange 2

"saLaD"schiebt seine Zeichencodes von A nach B; 1/dividiert den Zeichencode von rdurch 1, lässt ihn unverändert und ooooogibt fünf Zeichen aus. ;löscht einen Gegenstand (no-op, da der Stapel bereits leer ist). 1(schluckt den Anweisungszeiger und hält an.

Schlange 3

"YVaRg"drückt einige Zeichencodes; (schluckt dann eine Anzahl von Zeichen, die der Spitze des Stapels entspricht, der zufällig 89der Zeichencode von ist Y. Das Essen von 89 Zeichen reicht aus, um die IP zu verschlucken und die Ausführung anzuhalten.

///

Probieren Sie es online mit meiner Pip-Implementierung von ///

/'//löscht alle einfachen Anführungszeichen aus dem Rest des Programms (was nichts bewirkt, weil es keine gibt). Als nächstes wird bisCuItSausgegeben, wie sie ist. Schließlich ist der Rest des Codes eine unvollständige Ersetzung - es gibt nur zwei der drei erforderlichen Schrägstriche -, sodass nichts unternommen wird.


Ich mag den Missbrauch der "case does matter" -Regel, damit es in oOo CODE funktioniert :-)
ETHproductions

3

Cubix, Pushy, Brainfuck, V, Python 2 - 5 Sprachen, 89 85 Bytes

Mein zweiter Polyglott - nicht sehr golfen, aber es funktioniert:

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

(Beachten Sie, dass dies das wörtliche Escape-Byte darstellt. x1B)

  • Cubix druckt corn
  • Aufdringliche Drucke turkey
  • Brainfuck druckt ROLLS
  • V druckt gravy
  • Python druckt salad

Cubix

Testen Sie das Programm online!

Cubix ist eine Sprache des Herausforderungsautors ETHproductions. Der Cubix-Interpreter liest den Code folgendermaßen:

        " ` 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 . . .
        . . . .
        . . . .

Der Code wird folgendermaßen ausgeführt:

  • 'salad - führt einige irrelevante XOR-Operationen im Stack aus, was zu 115, 0, 0
  • '#;- Schieben Sie den Zeichencode von #und legen Sie ihn erneut ab (no-op)
  • "nroc" - Schieben Sie die Zeichencodes für "Mais"
  • w - verschiebt die IP in die Schleife in der nächsten Zeile darunter:
    • !@o; - letzten Eintrag drucken und einfügen (abbrechen, wenn der Eintrag 0 ist)
    • "-[--";;;; - schiebe diese Zeichen und lösche sie (no-op)
    • {{ - Nein-Op

Aufdringlich

Testen Sie das Programm online!

Pushy ist meine eigene Sprache und führt den Code folgendermaßen aus:

"          \ 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

Testen Sie das Programm online!

Brainfuck ignoriert alle Zeichen, die nicht in der Anweisungsliste enthalten sind.

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

Welche druckt ROLLS. Beachten Sie, dass hierfür ein Interpreter mit umhüllenden Zellen erforderlich ist, z. B. der bereitgestellte.


V (Vim Sprache)

Testen Sie das Programm online!

V wurde von DJMcMayhem kreiert, einem unserer besten Code-Golfer.

V ist eine programmbasierte Version des Texteditors Vim. Die meisten Zeichen vor dem ESCwerden in die "Datei" geschrieben, aber ␛ddgigravyalles wird gelöscht und stattdessen "Soße" eingefügt. Der Inhalt der Datei am Ende des Programms wird gedruckt.


Python 2

Testen Sie das Programm online!

Python ist eine meiner bevorzugten praktischen Sprachen. Da #es sich bei Python um einen Kommentar handelt, wird der größte Teil des Programms ignoriert. Der Code lautet wie folgt:

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


Kleiner Nitpick: Tatsächlich wird 'salad'#der Zeichencode von s, 0, 0 und der Zeichencode von gedrückt #, dann wird ;der Stapel geöffnet und bleibt bei 115,0,0.
ETHproductions

@ETHproductions Ja, Sie haben Recht, es hat keinen wirklichen Einfluss auf das Programm, aber ich werde die Beschreibung
korrigieren

2

Python / QBasic / Pip , 3 Sprachen, 41 Bytes

Weitere Sprachen möglicherweise TBA.

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

Python

1ist nur ein Ausdruck, der verworfen wird. #startet einen Kommentar. print("turkey")tut, was es sagt, und "salad"ist ein weiterer Ausdruck, der verworfen wird.

QBasic

1#ist eine Zeilennummer mit doppelter Genauigkeit. print"corn"tut was es sagt. endBeendet das Programm. Die zweite Zeile ist syntaktisch gültig, wird jedoch nie ausgeführt.

Pip

Fast alles sind Ausdrücke, die verworfen werden. "corn":eversucht, eine Literalzeichenfolge zuzuweisen, die unbemerkt fehlschlägt (sofern keine Warnungen aktiviert sind). "salad"ist der letzte Ausdruck im Programm und wird daher gedruckt.


1

PHP, JavaScript und BrainF * ck, 178 Bytes

Das erste Mal, dass ich einen Polyglot ausprobiert habe - ich werde nicht lügen, ich bin hier über meinem Kopf ...

Golf gespielt:

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

(Ich habe es nicht gewagt, ein Thanksgiving-Essen in den HTML-Code zu schreiben und das als eine andere Sprache zu betrachten ...)

Erläuterung:

Der Code muss in einer .php-Datei für die PHP- und JavaScript-Teile gespeichert werden.

PHP:

Bei Ausführung auf einem PHP-Server wird der PHP-Teil des Codes gelesen:

<?php echo "turkey";?>

Dies gibt aus:

Bildbeschreibung hier eingeben

JavaScript:

Sie können die JavaScript- A()Funktion von der Browserkonsole aus aufrufen :

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

Dies gibt aus:

Bildbeschreibung hier eingeben

Brainf * cK

Der Brainf * ck-Teil ist in den Kommentaren im JavaScript-Bereich gut versteckt, daher wird er von den PHP- und JavaScript-Teilen ignoriert:

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

Wenn die gesamte Datei in eine IDE eingefügt wurde, wird Folgendes ausgegeben:

Bildbeschreibung hier eingeben

Ohne diese Text-to-BF-Website hätte ich den Brainf * ck-Teil nicht machen können. Ich habe es ursprünglich dazu gebracht, Code für "Mais" zu generieren, und dann, um etwas über diese verrückte Sprache zu lernen, habe ich es in "Soße" konvertiert ... oder vielmehr "graVY" ...


1

Python, Clojure, Javascript, Ruby: 4 Sprachen, 113 Bytes

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

Vielen Dank an @ Sp3000 für den Großteil des Codes. Überraschenderweise musste ich nicht einmal an seinem Original etwas ändern, sondern lediglich den Ruby-Code voranstellen.


1

///, SQL und JavaScript

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

Gleiche Konstruktion wie bei diesem anderen urlaubsorientierten Polyglott:

///

/*//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

Javascript

/*//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 Bytes

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

Lisp Familie hier. '()Wird in Clojure als true ausgewertet, sodass ein Symbol ausgegeben wird turkey. PicoLisp und Common Lisp gehen in den falschen Zweig; ""ist in Common Lisp wahr und gibt daher ein Symbol aus rolls, ein leerer String ist in PicoLisp falsch und geht so zum Drucken des cornSymbols über.

Überprüfen Sie es online:

https://ideone.com/OD65LB - Clojure

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

https://ideone.com/B4x3ns - PicoLisp


0

CJam, Unterlast,> <>, 39 Bytes

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

Was CJam sieht

  • 'v;: Ein Zeichenliteral, das sofort verworfen wird
  • "(Turkey)S";: Ein String-Literal, das sofort verworfen wird
  • "Gravy": Schiebt die Saite Gravyauf den Stapel
  • "\n'nroC'oooo;";: Ein String-Literal, das sofort verworfen wird.

Am Ende der Ausführung wird der Stapel ausgegeben, was bedeutet, dass "Gravy" gedruckt wird.

Was Unterlast sieht

  • 'v;": Einige ungültige Befehle, die ignoriert werden
  • (Turkey)S: Drückt den String "Turkey" und gibt ihn aus
  • ";"Gr: Einige ungültige Befehle, die ignoriert werden
  • a: Dies verursacht einen Segfault im TIO-Interpreter, da der Stack leer ist. Die Ausführung wird abgebrochen.

Was> <> sieht

  • 'v;"(Turkey)S";"Gravy""schiebt eine Reihe von Zeichen auf den Stapel (die ignoriert werden). Die IP wickelt sich dann wieder um.
  • v sendet die IP nach unten.
  • >'nroC'oooo schiebt die Zeichen in die Zeichenfolge "Corn" und gibt sie aus.
  • ;beendet die Ausführung. Alle anderen Zeichen werden ignoriert.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.