คุณจะนำอะไรมาขอบคุณพระเจ้า


40

วันขอบคุณพระเจ้าในสหรัฐอเมริกากำลังจะมาถึงในวันที่ 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 Sgreen beans
  • ในฐานะที่เป็นจานกลางของทุก1อาหารอเมริกันขอบคุณพระเจ้าเป็นไก่งวงภาษาหนึ่งต้องส่งออกturkey (กรณีละเว้นและช่องว่าง)

เกณฑ์การให้คะแนน

การส่งที่สร้างผลลัพธ์ที่ถูกต้องไม่ซ้ำกันในภาษาส่วนใหญ่ชนะ ในกรณีที่เสมอกันรายการที่ถูกผูกให้สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ

1. ใช่ไก่งวงไม่ได้เป็นอาหารจานหลักเท่านั้นแต่เราจะทำเป็นว่าเป็น


1
ความท้าทายสองประการที่เกี่ยวข้อง: 1 , 2
ETHproductions

กรณีและช่องว่างไม่สำคัญเราจะลบช่องว่างออกได้หรือไม่ พูดว่าผลผลิตcornbread
Luis Mendo

@LuisMendo Yup
ETHproductions

1
ฉันจะไม่ทำอะไรเลยเพราะฉันไม่ได้อยู่ในสหรัฐอเมริกา XD
Mega Man

1
@ ConorO'Brien ฉันจะอนุญาตให้ตัวอักษรว่างเปล่าเป็น whitespace และใช่คุณอาจใช้ "ภาษาถิ่น" ของ BF ที่แตกต่างกัน
ETHproductions

คำตอบ:


32

Pyke, Pyth, Python 2, Foo, Brain ****, GolfScript, จริงๆแล้ว <> <, Gol <> <, จริงจัง, Befunge, ฟิชชัน, Haystack, 13 ภาษา, 546 ไบต์

เมื่อผมได้เห็นคนอื่น ๆ10 11 12 คำตอบภาษาผมต้องเพิ่มพิเศษหนึ่ง สอง 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"

Pyke: ลองที่นี่สิ! 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

Pyth: ลองที่นี่สิ! 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

ฟูพิมพ์สิ่งที่อยู่ในเครื่องหมายคำพูดคู่ ( ") ในกรณีนี้ฉันระมัดระวังที่จะรวมเฉพาะภาษาที่สามารถรับมือกับรูปแบบอื่น ๆ ของการป้อนสตริง (กรณีพิเศษสำหรับ Befunge) หากมีข้อความใด ๆ หลังจากสุดท้าย"ก็จะถูกพิมพ์ด้วย


สมอง ****: ลองออนไลน์! salad

ฉันคัดลอกผลลัพธ์ของเครื่องมือสร้างสตริงคงที่ ฉันต้องหลบหนี.ตัวละครทั้งหมดด้วย.qดังนั้นมันจะเล่นกับ Pyth และw.มันจะเล่นกับ Pyke ฉันเพิ่ม-อักขระพิเศษเพื่อให้เซลล์ไปถึงจุดที่ถูกต้องก่อนพิมพ์ที่.อักขระอื่นในบรรทัดที่ 3


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

Haystack (2015) : PECANPIE(ด้วยการขึ้นบรรทัดใหม่ EXTRA!)

#\
 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 codepoint สำหรับตัวอักษรตัวพิมพ์ใหญ่เพราะมันต่ำกว่า 100 แล้วพิมพ์ออกมาเป็นตัวละคร


1
ว้าว! ไม่เคยเห็นพูดได้หลายภาษา Pyth / หลาม (ฉันเดาความเห็นทำให้มันง่ายขึ้น)
Esolanging ผลไม้

คุณสามารถลบช่องว่างและอาจทำให้สั้นลง ( macaroni and cheeseสามารถส่งออกเป็นmacaroniandcheese)
Artyer

ลบ @Artyer ช่องว่างแล้ว
สีน้ำเงิน

1
@Artyer นี้ไม่ใช่ codegolf
FlipTack

1
รอ GolfScript เอาท์พุทcornrolls? ไม่ได้อยู่ในเมนู ...
ETHproductions

10

CJam , 05AB1E , Dip , V , 4 ภาษา, 36 34 ไบต์

บันทึก 2 ไบต์ด้วย @DrMcMoylex!

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

รหัส 36 ไบต์เดิม:

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

หลังจาก&และก่อนdมีนั่น<ESC>คือ 1 ไบต์ ดังนั้นรหัสที่มีอักขระความกว้างเป็นศูนย์จะมีลักษณะดังนี้:

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

CJam

( <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แล้วพิมพ์รหัสสำหรับสิ่งนี้เนื่องจากตัวอักษร Escape ตามตัวอักษร ดูเหมือนว่า^[ซึ่งทำให้ล่าม Dip สับสนและคิดว่านั่น[เป็นคำสั่งและส่งผลให้เกิดข้อผิดพลาด

วิธีที่ดีที่สุดในการรันคือแก้ไขไฟล์ต้นฉบับเปลี่ยนบรรทัดสุดท้าย dip.py

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

ไปยัง

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

ให้แน่ใจว่าได้รวมตัวอักษรหลบหนีที่แท้จริง! ตอนนี้รหัสตามที่จะผ่านเข้าสู่ล่ามเพื่อที่จะสามารถเข้าใจมัน ( "จะต้องมีการหลบหนีเช่น\"นั้น) gravyตอนนี้ถ้าคุณเรียกใช้จากบรรทัดคำสั่งก็ตีความรหัสจริงและเอาท์พุท


@ETHproductions ฉันไม่เห็นว่ายังไงก็ตามที่ทำงานกับมัน ...
Kritixi Lithos

@ETHproductions เรียบร้อยแล้ว! ตอนนี้ใช้งานได้สามภาษา!
Kritixi Lithos

เจ๋งสุด ๆ เลย!
ETHproductions

3
+1 สำหรับpop "corn"คำอธิบาย
FlipTack

nitpick และเคล็ดลับการเล่นกอล์ฟ: เรียกว่า "โหมดปกติ" ไม่ใช่โหมดหลบหนีและเนื่องจากช่องว่างไม่เกี่ยวข้องคุณสามารถเปลี่ยนddiเป็นS
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

@ ผลิตภัณฑ์นั้นจึงเป็นงบที่ถูกต้องใน CJam และมันไม่ผิดพลาดในภาษานั้นก่อนเวลาอันควร
Luis Mendo

จริงๆแล้วมันอาจเป็นตัวพิมพ์ใหญ่ทั้งหมด ท้ายที่สุดไก่งวงเป็นอาหารที่สำคัญที่สุด :-)
หลุยส์เมนโด

8

C, sh, Python 3, Nim, Julia, 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
  • Nim เอาต์พุต rolls
  • จูเลียเอาท์พุท salad
  • เอาต์พุต Brainf ** k corn

เพิ่ม Julia ขอบคุณ @kvill!


1
จูเลียมีความเป็นไปได้ที่จะบีบอัดในจำนวนเดียวกัน คุณสามารถวาง C #include(ทำงานได้gcc) เปลี่ยนชื่อputs printlnทุกที่ยกเว้นในmain()เพิ่มความคิดเห็นหลายจูเลียเปิด#=ข้างต้นa='''และการเปลี่ยนแปลงไป#*/ # =##*/
kvill

คุณสามารถตีกอล์ฟเพิ่มได้โดยลบexitและเข้าร่วมการอ้างอิงเดียวกับบรรทัดก่อนหน้า ( a='''') shจะออกคำเตือน แต่อนุญาต AFAIU และโอ้println[T](s:T)=echo"rolls"ใช้ได้ผลสำหรับนิม คำตอบที่ดีกับภาษาที่ฉันโปรดปรานทั้งหมดรวมกัน!
kvill


7

Befunge-98 , > <> , V , Python 2, 05AB1E , Gol> <> , Foo , Haystack (เวอร์ชั่น 2015) , GolfScript , BF, ฟิชชัน , Minkolang 0.15 , จริงจัง , Axo : 14 ภาษา, 381 ไบต์

นี่เป็นคำตอบการทำงานร่วมกันกับBlueEyedBeast

ฉันตัดสินใจที่จะทำแบบสองมิติกับคำถามนี้ ... ใช่มี7 esolangs 2D!

ฉันได้แรงบันดาลใจสำหรับภาษาเพิ่มเติมเพื่อเพิ่มโดยคำตอบของ BlueEyedBeast (Foo, GolfScript)

<ESC>เป็นตัวอักษรตัวอักษรสำหรับการหลบหนี

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

Gol> <>

คำสั่งจะแสดงตามลำดับที่ปรากฏ

                                    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

ฟู

Foo ให้ผลลัพธ์ทุกอย่างด้วยเครื่องหมายคำพูดคู่นี่คือเหตุผลที่ฉันระมัดระวังที่จะไม่ใช้เครื่องหมายคำพูดคู่ในภาษาอื่น เนื่องจาก"stuffing"อยู่ในเครื่องหมายคำพูดคู่มันจะถูกพิมพ์

ลองออนไลน์! เอาท์พุทstuffingแล้วมีข้อผิดพลาด

กองหญ้า (2015)

สิ่งนี้ใช้ล่ามของ Haystack (ไม่ใช่ 2559) เนื่องจากรุ่นที่ใหม่กว่านั้นไม่ถูกต้อง ล่ามสำหรับสิ่งนี้คือ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

และขึ้นบรรทัดใหม่หลังจากเอาท์พุทนี้ (เฮ้ช่องว่างไม่สำคัญ!)

GolfScript

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

ลองออนไลน์! เอาท์พุทpecanpie

BF

ฉันใช้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

มิงโกลัง 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

@ ETHproductions ขอบคุณ! ฉันใส่ความพยายามมากเป็นมัน :)
Kritixi Lithos

แค่นิดหน่อยนิดหน่อย:! ในรหัส befunge ใช้เวลา 0 จากด้านบนของสแต็กและกด 1 ดังนั้นเนื้อหาสแต็กเมื่อโปรแกรมเริ่มพิมพ์คือ [110 114 111 99 1 1] อักขระสำหรับค่า ASCII 1 ไม่ปรากฏ (เริ่มต้นส่วนหัว) ดังนั้นจึงไม่มีผลต่อผลลัพธ์ที่มองเห็น +1
MildlyMilquetoast

@MistahFiggins ฉันสามารถเปลี่ยนไป$,,,,แทนเพื่อไม่ให้การส่งออก1(โดยไม่ต้องเปลี่ยน bytecount) แต่แล้วฉันจะมีการเปลี่ยนแปลง Permalinks ทั้งหมด ... :)
Kritixi Lithos

6

Pushy , Python และ Brainfuck

นี่คือพูดได้หลายภาษาคนแรกของฉันดังนั้นอย่าไปหนักเกินไปกับฉัน ... สำหรับผู้ที่พูดเกี่ยวกับการนับไบต์มันเป็น 77 ไบต์ แต่นั่นเป็นเพียงที่เกี่ยวข้องกับ tiebreaker

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

Pushy พิมพ์'ไก่งวง'พร้อมกับ newline ชั้นนำ (รวมถึงข้อความถึง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 พิมพ์'น้ำเกรวี่'เนื่องจากบรรทัดแรกและบรรทัดสุดท้ายถือว่าเป็นความคิดเห็น

brainfuck ละเว้นตัวละครอื่น ๆ ทั้งหมดและยกเว้นสำหรับผู้ที่อยู่ในบรรทัดสุดท้ายซึ่งสร้างและพิมพ์คำว่า'ข้าวโพด'


1
จำนวนไบต์คืออะไร
Kritixi Lithos

1
นอกจากนี้คุณไม่สามารถใช้ Python 2 เพื่อลบวงเล็บและบันทึก 2 ไบต์ได้หรือไม่
Kritixi Lithos

@KritixiLithos นี่ไม่ใช่ codegolf ....
FlipTack

4
“ ในกรณีที่เสมอกันรายการที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ” มันไม่ใช่ codegolf ทั้งหมด แต่คุณยังต้องมีจำนวน bytecount
TuxCrafting

2
@ TùxCräftîñgจริง แต่นี่ไม่มีโอกาสที่จะไปถึง tiebreaker ได้อีกต่อไป
FlipTack

4

Pip , BF , รหัส oOo , > <> , Befunge-93 ( การใช้งานQuirkster ), 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

BF

ลองออนไลน์

ทุกอย่างยกเว้น>-[--[<]>+>-]<.++++++++++++.+++.----.,,,,ความคิดเห็น รหัสนี้จะสร้าง99(รหัสอักขระสำหรับc) ผ่านทางวิธีที่สั้นที่สุดที่ระบุไว้ในesolangs.orgแล้วแก้ไขมันo, และr nความ,,,,พยายามที่จะใส่ตัวละครสี่ตัว แต่นั่นไม่ได้ส่งผลกระทบอะไร

oOo CODE

ทุกอย่างยกเว้นตัวอักษรจะถูกละเว้น การจัดกลุ่มตัวอักษรเป็นสามรหัสจะอ่านดังนี้:

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

และแปลเป็นรหัส BF นี้ ( ลองใช้โดยใช้ตัวแปล Retina ของ Martin :

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

ซึ่งเอาท์พุท rolls(และน่าสนใจพอคือสั้นกว่า BF ด้านบนสำหรับการแสดงผลcornแม้จะ><ไม่มีการเพิ่ม op เพื่อทำให้ตัวพิมพ์ใหญ่เป็นเส้นอย่างถูกต้อง)

> <>

เรียกใช้> <> รหัสที่นี่

ส่วนสำคัญของรหัส:

/
        /ooooo;
>"YVaRg"^

IP สะท้อนกลับขึ้นไปล้อมรอบและส่งไปทางขวา ดันรหัสอักขระของ"YVaRg" ออกห้าตัวอักษรและยุติโปรแกรมgRaVYooooo;

Befunge-93

รหัสขึ้นอยู่กับพฤติกรรมที่ไม่ได้กำหนดและอาจใช้ได้เฉพาะในการใช้งานนี้

ส่วนสำคัญของรหัส:

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

/คือการแบ่ง สแต็คเป็นที่ว่างเปล่าเพื่อให้การดำเนินงาน JavaScript ฉันใช้แบ่ง0โดยและผลักดัน0NaN

'เป็นอักขระที่ไม่รู้จัก การใช้งานที่ฉันใช้นั้นสะดวกสบายจะปฏิบัติต่ออักขระที่ไม่รู้จักเป็นคำสั่ง Reflect (สำหรับเวอร์ชันที่ขึ้นกับการนำไปใช้งานน้อยกว่าการแทนที่ที่เป็นไปได้หนึ่งอย่างจะเป็น1_ไปได้) ดังนั้น IP จะออกไปอีกครั้งหารNaNด้วย0(รับNaN) และล้อมรอบส่วนอื่น ๆ ของบรรทัด

ตอนนี้"yekRut"(การย้าย RTL) จะผลักรหัสอักขระtuRkeyและ,,,,,,ส่งออก สุดท้าย@ยุติโปรแกรม

Ouroboros

ลองที่นี่

แต่ละบรรทัดของรหัสคือ "งู" ที่ดำเนินการอย่างอิสระ

งู 1

เนื่องจากไม่มีคำสั่งเอาต์พุตส่วนที่สำคัญเพียงอย่างเดียวของรหัสคือf(: fผลัก15และ(กลืนที่อักขระจำนวนมากจากปลายงู ตอนนี้โค้ดจะถือว่าจบ.Oแล้ว การประหารชีวิตจะดำเนินต่อไปจนถึงปลายงูและวนกลับไปสู่จุดเริ่มต้น แต่ละครั้งที่ผ่านงูจะสั้นลงจนในที่สุดก็(กลืนเข้าไป ตั้งแต่ไอพีเพิ่งกินงูจึงหยุดการทำงาน

งู 2

"saLaD"ผลักดันรหัสตัวละครของมันจากครั้งแรกไปก่อน; 1/หารด้วยรหัสของrโดย1ปล่อยให้มันไม่เปลี่ยนแปลงและoooooเอาท์พุทห้าตัวอักษร ;ลดลงรายการ (no-op เพราะสแต็กเปล่าแล้ว) 1(กลืนตัวชี้คำสั่งและหยุด

งู 3

"YVaRg"ผลัก charcodes บาง; แล้ว(กลืนจำนวนตัวอักษรเท่ากับไปด้านบนของสแต็คที่เกิดขึ้นจะเป็นรหัสของตัวละคร89 Yการกิน 89 ตัวอักษรนั้นเพียงพอที่จะกลืน IP และหยุดการประมวลผล

///

ลองใช้งานออนไลน์โดยใช้Pip ของ ///

/'//ลบเครื่องหมายคำพูดเดี่ยวทั้งหมดออกจากส่วนที่เหลือของโปรแกรม (ซึ่งไม่ทำอะไรเลยเพราะไม่มี) ถัดไปbisCuItSเอาท์พุทตามที่เป็น ในที่สุดรหัสที่เหลือคือการทดแทนที่ไม่สมบูรณ์ - มีเพียงสองในสามของเครื่องหมายทับที่จำเป็น - ดังนั้นจึงไม่ทำอะไรเลย


ฉันชอบการละเมิดกฎ "คดีไม่สำคัญ" เพื่อให้ทำงานใน oOo CODE :-)
ETHproductions

3

Cubix, Pushy, Brainfuck, V, Python 2 - 5 ภาษา, 89 85 ไบต์

พูดได้หลายภาษาที่สองของฉัน - ไม่เล่นกอล์ฟมาก แต่ใช้งานได้:

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

(โปรดทราบว่าหมายถึง byte escape ตามตัวอักษรx1B)

  • พิมพ์ Cubix corn
  • พิมพ์รุก turkey
  • พิมพ์ Brainfuck ROLLS
  • พิมพ์ V gravy
  • Python พิมพ์ salad

Cubix

ทดสอบโปรแกรมออนไลน์!

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
  • '#;- กดรหัสของ#จากนั้นเปิดอีกครั้ง (ไม่มี op)
  • "nroc" - ผลัก charcodes สำหรับ "ข้าวโพด"
  • 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

ทดสอบโปรแกรมออนไลน์!

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'#จริงดัน charcode ของs, 0, 0, และ charcode ของ#แล้วปรากฏและใบสแต็คที่; 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 สำหรับส่วน PHP และ JavaScript

PHP:

เมื่อรันบนเซิร์ฟเวอร์ PHP จะอ่านส่วน PHP ของรหัส:

<?php echo "turkey";?>

ผลลัพธ์นี้:

ป้อนคำอธิบายรูปภาพที่นี่

JavaScript:

คุณสามารถเรียกใช้A()ฟังก์ชันJavaScript ได้จากคอนโซลของเบราว์เซอร์:

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

ผลลัพธ์นี้:

ป้อนคำอธิบายรูปภาพที่นี่

Brainf CK *

ส่วน Brainf * ck นั้นถูกซ่อนไว้อย่างดีในความคิดเห็นในส่วน JavaScript ดังนั้นมันจึงถูกละเว้นโดยส่วน PHP และ JavaScript:

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

เมื่อไฟล์ทั้งหมดถูกวางลงในIDEเอาต์พุตนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ผมไม่ได้ทำ Brainf * ส่วน CK โดยไม่ต้องนี้เว็บไซต์ข้อความ-BF ฉันได้รับมันเพื่อสร้างรหัสสำหรับ "ข้าวโพด" จากนั้นในความพยายามที่จะเรียนรู้บางสิ่งเกี่ยวกับภาษาที่บ้าคลั่งนี้ฉันแปลงมันเป็น "น้ำเกรวี่" ... หรือมากกว่า "graVY" ...


1

Python, Clojure, Javascript, Ruby: 4 ภาษา, 113 ไบต์

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

ขอบคุณ @ Sp3000 สำหรับรหัสส่วนใหญ่ น่าแปลกที่ฉันไม่ต้องทำอะไรกับต้นฉบับของเขาเลยฉันแค่ต้องเติมรหัสทับทิม


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

จาวาสคริ

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

เสียงกระเพื่อมครอบครัวที่นี่ '()ประเมินให้เป็นจริงใน Clojure จึงดำเนินการ outputing turkeyสัญลักษณ์ PicoLisp และ Common Lisp เข้าสู่สาขาที่เป็นเท็จ ""เป็นจริงใน Common Lisp และทำให้มันพิมพ์สัญลักษณ์rollsสตริงว่างเปล่าเป็นเท็จใน PicoLisp และเพื่อไปที่cornสัญลักษณ์การพิมพ์

ตรวจสอบออนไลน์:

https://ideone.com/OD65LB - Clojure

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

https://ideone.com/B4x3ns - PicoLisp


0

CJam, Underload,> <>, 39 ไบต์

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

สิ่งที่ CJam เห็น

  • 'v;: ตัวอักษรตัวอักษรที่ถูกทิ้งทันที
  • "(Turkey)S";: สตริงตัวอักษรที่ถูกยกเลิกทันที
  • "Gravy": กดสตริงGravyไปยังสแต็ก
  • "\n'nroC'oooo;";: สตริงตัวอักษรที่ถูกยกเลิกทันที

เมื่อสิ้นสุดการประมวลผลสแต็กจะถูกส่งออกซึ่งหมายความว่า "Gravy" ถูกพิมพ์

สิ่งที่ Underload เห็น

  • 'v;": คำสั่งที่ไม่ถูกต้องบางคำสั่งจะถูกละเว้น
  • (Turkey)S: ใส่สตริง "ตุรกี" แล้วส่งออกมา
  • ";"Gr: คำสั่งที่ไม่ถูกต้องบางคำสั่งจะถูกละเว้น
  • a: สิ่งนี้ทำให้ segfault บน TIO interpreter เนื่องจากสแต็กว่างเปล่า การดำเนินการถูกยกเลิก

อะไร> <> เห็น

  • 'v;"(Turkey)S";"Gravy""ผลักพวงของตัวละครไปยังสแต็ค (ซึ่งจะถูกละเว้น) IP จะย้อนกลับไปรอบ ๆ
  • v ส่ง IP ลงด้านล่าง
  • >'nroC'oooo ดันอักขระในสตริง "Corn" และส่งออกอักขระ
  • ;ยุติการดำเนินการ อักขระอื่น ๆ ทั้งหมดจะถูกละเว้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.