Halloween Golf: The 2spooky4me Challenge!


41

meme อินเทอร์เน็ตปัจจุบันคือการพิมพ์ 2spooky4me โดยมีบุคคลที่สองพิมพ์ 3spooky5me ตาม(n)spooky(n+2)meรูปแบบ

ภารกิจของคุณคือการนำรูปแบบนี้ไปใช้ในภาษาที่คุณเลือก คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่รับค่าn(จากอินพุตมาตรฐานเป็นอาร์กิวเมนต์ของฟังก์ชันหรือทางเลือกที่ใกล้เคียงที่สุด) และส่งออกสตริง(n)spooky(n+2)me(โดยไม่ต้องใส่วงเล็บไปยังเอาต์พุตมาตรฐานเป็นค่าส่งคืนสำหรับฟังก์ชั่น )

โซลูชันของคุณควรใช้งานได้กับอินพุตทั้งหมดตั้งแต่1ต่ำกว่า 2 ค่าต่ำกว่าค่าจำนวนเต็มที่แทนค่าสูงสุดของภาษาของคุณ ( 2^32-3สำหรับ C บนเครื่อง 32- บิตเป็นต้น)

ตัวอย่างการนำไปใช้ใน Python:

def spooky(n):
    return "%dspooky%dme"%(n,n+2)

spooky(2) -> "2spooky4me"

นี่คือดังนั้นช่องโหว่มาตรฐานจึงเป็นสิ่งต้องห้ามและคำตอบที่สั้นที่สุดในการชนะไบต์!

ลีดเดอร์บอร์ด

สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างกระดานแต้มนำจากคำตอบ a) เป็นรายการคำตอบสั้นที่สุดต่อภาษาและ b) เป็นกระดานแต้มนำโดยรวม

เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:

## Language Name, N bytes

ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น

## Ruby, <s>104</s> <s>101</s> 96 bytes

หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:

## Perl, 43 + 2 (-p flag) = 45 bytes

คุณสามารถทำให้ชื่อภาษาเป็นลิงค์ซึ่งจะปรากฏในตัวอย่างข้อมูล:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


2
สำหรับคะแนนโบนัส: การป้อนข้อมูล%dspooky%dmeตรวจสอบและกลับมาเป็นลำดับต่อไป
ตบมือ


7
เดนนิสคือใคร : O
NuWin

10
@NuWin Dennisเป็นวิธี เดนนิสเป็นแสงสว่าง
Alex A.

1
@NuWin Dennis คือความรัก Dennis is life

คำตอบ:


44

gs2, 15 ไบต์

ฉันแซงหน้าเดนนิส!

CP437:

spooky•me♣╨V↕0B

การถ่ายโอนข้อมูล Hex:

73 70 6f 6f 6b 79 07 6d 65 05 d0 56 12 30 42

ในช่วงเริ่มต้นของโปรแกรม STDIN จะถูกผลัก (เช่นสตริง"3") Aและเก็บไว้ในตัวแปร สิบไบต์แรกของโปรแกรมจะกดสองสตริง"spooky"และ"me"ไปที่สแต็ก แล้ว:

  • d0Aตัวแปรผลักดัน
  • 56 วิเคราะห์คำเป็นตัวเลข
  • 12 30 เพิ่มทีละสอง
  • 42"3" "spooky" 5 "me"แลกเปลี่ยนด้านบนสององค์ประกอบในกองทิ้ง

3spooky5meสแต็คสุดท้ายคือพิมพ์เป็น


4
นรกศักดิ์สิทธิ์นั้นสั้น +1
Addison Crump

11
GJ แต่เดนนิสอาจมาที่นี่และเอาชนะคุณเพื่อรักษาชื่อเสียงของเขา
TheDoctor

7
ไม่มีไรคุณทำแบบนั้นได้อย่างไร
ปาเก็ตตี้

3
ฉันเพิ่งรู้ว่า gs2 ย่อมาจาก "golf script 2" หรือไม่?
mbomb007

5
อย่างไรก็ตามฉันได้เพิ่ม GS2 ให้กับตระกูลล่ามออนไลน์ลองใช้งานออนไลน์!
Dennis

30

GS2, 17 ไบต์

56 40 27 27 04 73 70 6F 6F 6B 79 05 42 04 6D 65 05

ฉันไม่สามารถปฏิเสธเดนนิสได้



3
มนุษย์มันแปลกมากที่ปัจจุบันเรามี 4 ภาษาที่เชื่อมโยงกันสำหรับภาษาแรกและ 3 ภาษาที่เชื่อมโยงกันเป็นครั้งที่สอง: P
ETHproductions

24

ติดอยู่ 17 ไบต์

i_2+"spooky";"me"

แก้ไข: คาดเดาว่าคุณจะบอกได้ว่าฉันติดอยู่ที่ 17 ไบต์


1
เฮ้เจ๋งมีคนใช้ Stuck: D
Kade

@Shebang ฉันชอบ Stuck จริงๆ แม้ว่ามันจะดีถ้ามันมีวิธีที่ดีกว่าสำหรับการจัดการกับอาร์เรย์
ปาเก็ตตี้

21

GolfScript ขนาด 17 ไบต์

~.2+"spooky"\"me"

ลองมันออนไลน์บนเว็บ GolfScript

มันทำงานอย่างไร

~        # Evaluate the input.
.2+      # Push a copy and add 2.
"spooky" # Push that string.
\        # Swap it with the computed sum.
"me"     # Push that string.



10

พ่อครัวขนาด 414 ไบต์

S.

Ingredients.
g i
2 g t
115 l s
112 l p
111 l o
107 l k
121 l y
109 l m
101 l e

Method.
Take i from refrigerator.Put e into mixing bowl.Put m into mixing bowl.Put i into mixing bowl.Add t.Put y into mixing bowl.Put k into mixing bowl.Put o into mixing bowl.Put o into mixing bowl.Put p into mixing bowl.Put s into mixing bowl.Put i into mixing bowl.Pour contents of mixing bowl into the baking dish.

Serves 1.

สูตรสำหรับภัยพิบัติ อย่าลองทำที่บ้าน.


6
มิลลิเมตร นั่นเป็นรสชาติที่น่ากลัวที่คุณไปถึงที่นั่น
Addison Crump

9

TeaScript ขนาด 18 ไบต์

x+`spooky${x+2}me`

น่าเสียดายที่สตริงนี้ไม่สามารถบีบอัดได้ดังนั้นนี่จึงสั้นพอ ๆ กับที่จะได้รับ


12
ยินดีต้อนรับสู่ 18 ไบต์! : P
ปาเก็ตตี้

9

Pip, 18 ไบต์

ดูเหมือนว่าฉันอยู่ในชั้นที่สองของภาษากอล์ฟที่นี่ : ^ P

[a"spooky"a+2"me"]

ใช้ตัวเลขเป็นอาร์กิวเมนต์บรรทัดคำสั่งและทำให้องค์ประกอบที่เหมาะสมในอาร์เรย์ซึ่งรวมเข้าด้วยกันและพิมพ์อัตโนมัติที่ส่วนท้ายของโปรแกรม



8

Japtap, 17 16 ไบต์

U+"spooky{U+2}me

Japt ( Ja vascri pt shortened) เป็นภาษาของการประดิษฐ์ของฉัน มันใหม่กว่าความท้าทายนี้ ดังนั้นคำตอบนี้ไม่ใช่การแข่งขัน แตกต่างจากภาษาที่ไม่ได้เผยแพร่อีกเจ็ดภาษาของฉันคนนี้มีล่ามจริงที่กำลังพัฒนาและทำงานได้บางส่วนแล้ว

ฉันต้องการโพสต์สิ่งนี้เพราะฉันชอบความยาวเท่ากันกับคำตอบที่สองที่มีอยู่ทั้งหมด นี่คือวิธีการทำงาน:

U+"spooky{U+2}me"    implicit: [U,V,W,X,Y,Z] = eval(input)
U+                   input +
  "spooky     me"     this string
         {U+2}         with input+2 inserted here
                     implicit: output last expression

และคุณมีมัน ข้อมูลจำเพาะสำหรับการใช้งานทั้งหมดที่ใช้ที่นี่ได้รับการสรุปในวันที่ 29 ตุลาคม ไม่มีอะไรเปลี่ยนแปลงเพื่อให้คำตอบนี้สั้นลง นี่คือล่ามตามที่สัญญาไว้


ฉันแน่ใจว่านี่คือ pre-shoco แต่ฉันคิดว่าคุณสามารถทำได้{U}2meแทน{U+2}me: P
Oliver

7

Gol> <> , 21 ไบต์

I:n"emykoops"6Ro{2+nH

ฉันเดาว่า ... ผูกติดกับ Perl แล้วเหรอ? ลองมันออนไลน์

I:n            Input n, output n
"emykoops"     Push chars
6Ro            Output top 6 chars (spooky)
{2+n           Output n+2
H              Output stack and halt (me)

7

Vitsy, 21 ไบต์

หมายเหตุ: Zคำสั่งถูกสร้างขึ้นหลังจากการท้าทายนี้เริ่มขึ้น แต่ไม่ได้ทำเพื่อการท้าทายนี้

Vvn "ykoops" ZV2 + N "เอ็ม" Z
V หยิบไอเท็มด้านบนของสแต็ค (อินพุต) และทำให้เป็น
                       ตัวแปรทั่วโลก
 V เรียกมันว่า - ดันตัวแปรโกลบอลไปที่ด้านบนสุดของสแต็ก
  ไม่มีเอาต์พุตเป็นตัวเลข
   "ykoops" กด 'spooky' ลงในสแต็ก
           เอาท์พุทมันทั้งหมด
            V2 + N เรียกตัวแปรโกลบอลอีกครั้งเพิ่มสองแล้วส่งออกเป็นตัวเลข
                "em" Z กด 'me' ลงในสแต็กและส่งออกทั้งหมด

รูปแบบ spoopy เพิ่มเติมโดยใช้หลายกอง (27 ไบต์):

& "ykoops" & "อีเอ็ม"? DN? Z ?? 2 + N ?? Z

& สร้างสแต็กใหม่แล้วย้ายไปที่
 "ykoops" กด 'spooky' ลงในสแต็กปัจจุบัน
         & "em" ทำสิ่งสุดท้ายกับ 'me'
              ? ย้ายไปกองซ้อน
               DN เอาท์พุทอินพุต
                 ? Z ย้ายไปที่กองซ้อน (อันที่มี 'เหมือนผี') และพิมพ์
                   ?? ย้ายกลับไปที่สแต็กดั้งเดิม
                     2 + N เพิ่ม 2 เข้ากับอินพุตและส่งออกเป็นตัวเลข
                        ?? Z ย้ายไปที่สแต็กที่มี 'me' อยู่ในนั้นและพิมพ์

ลองออนไลน์!


แค่สงสัยว่าทำไมสายอักขระจึงกลับด้าน
Cyoce

มันผลักดันตัวอักษรไปที่สแต็คทีละหนึ่ง
Soham Chowdhury

6

Julia, 23 ไบต์

n->"$(n)spooky$(n+2)me"

สิ่งนี้จะสร้างฟังก์ชั่นแลมบ์ดาที่ไม่มีชื่อซึ่งยอมรับจำนวนเต็มและส่งคืนสตริง เอาต์พุตถูกสร้างขึ้นโดยใช้การแก้ไขสตริงของ Julia


5

Ruby, 25 ไบต์

->n{"#{n}spooky#{n+2}me"}

สิ่งนี้จะสร้างแลมบ์ดาที่ไม่มีชื่อซึ่งยอมรับจำนวนเต็มและส่งคืนสตริง สตริงถูกสร้างขึ้นโดยใช้การแก้ไขสตริงของรูบี้


5

APL, 25 22 ไบต์

⍕,'spooky','me',⍨∘⍕2+⊢

สิ่งนี้จะสร้างฟังก์ชั่นการฝึก monadic ที่ไม่มีชื่อที่รับจำนวนเต็มทางซ้ายและส่งคืนสตริง

ค่าตัวเลขจะถูกแปลงเป็นสตริงใช้ อาร์เรย์ของสตริงจะเข้าร่วมเป็นสายเดียวที่ใช้

ลองออนไลน์

บันทึกแล้ว 3 ไบต์ขอบคุณ Thomas Kwa!


5

Javascript (ES6) 23 21 ไบต์

ฟังก์ชั่นง่าย ๆ ที่จะถูกบดขยี้โดยการเล่นกอล์ฟ:

_=>_+`spooky${_+2}me` 

_=>`${_}spooky${_+2}me`

ขอขอบคุณ ETHproductions พิเศษสำหรับการบันทึก 2 ไบต์


noice! คุณอาจสามารถตัดทอนสตริงเทมเพลตให้สั้นลง แต่ฉันไม่สามารถคิดถึงวิธีการใด ๆ ได้
MayorMonty

บันทึกสองไบต์:_=>_+`spooky${_+2}me`
ETHproductions

ขอบคุณ แต่ตอนนี้การแก้ไขดูเหมือนชัดเจนมากฉันรู้สึกโง่ ฉันคิดว่านี่เป็นวิธีที่สั้นที่สุดในการทำเช่นนี้ใน Javascript ฉันอาจผิด (ฉันหวังว่าฉันผิด)
ผู้ใช้ทั่วไป

5

05AB1E, 14 10 ไบต์

DÌs’ÿæªÿme

ลองออนไลน์

การไม่แข่งขันตั้งแต่ 05AB1E ใหม่กว่าความท้าทายนี้

คำอธิบาย

DÌs’ÿæªÿme

D                get input n and duplicate it
 Ì               increment by 2
  s              Swap. Stack is now [n+2, n].
   ’ÿæªÿme       Compressed string that expands to "ÿspookyÿme". The first ÿ is then replaced by n and the second by n+2.

2
ดูเหมือนว่าจะทำงานกับการDลบแบบ 9 ไบต์
dzaima

4

PHP, 55 47 46 42 34 ไบต์

<?=($a=$argv[1]).spooky.($a+2).me;

ยอมรับตัวเลขเป็นอินพุตบรรทัดคำสั่ง

เครดิต :)

ขอบคุณ manatwork สำหรับการบันทึก 4 ไบต์!

ขอขอบคุณที่มีชื่อผู้ใช้ที่บันทึก 8 ไบต์!


function a($a){echo$a,"spooky",$a+2,"me";}
จัดการ

คุณสามารถบันทึก 4 ไบต์โดยการลบ"s คุณยังสามารถบันทึก 4 ไบต์มากขึ้น<?=($a=$argv[1]).spooky.($a+2).me;โดยการอาร์กิวเมนต์บรรทัดคำสั่งและทิ้งฟังก์ชั่นเช่นนี้
insertusernamehere

4

Cha , ne , 15 ไบต์

คำถามที่ไม่ใช่การแข่งขันภาษาจะโพสต์คำถาม

{i~}:-,}:{2+}me
{i~}            | input duplicate write
    :   :       | access dictionary with inner base-93 key
     -,}        | entry for "spooky"
         {2+}   | push 2, add previous two, write
             me | write me

เอาต์พุตโดยนัย


ผลลัพธ์คือ `spookyme 4 2" (ขึ้นบรรทัดใหม่)
Fabian Schmengler

@fschmengler ฉันต้องทำสิ่งที่สับสนขณะอัปเดตล่าม กรุณาเตรียมพร้อม.
Conor O'Brien

@fschmengler เอาล่ะข้อผิดพลาดได้รับการแก้ไข มันควรจะใช้งานได้แล้ว
Conor O'Brien


3

Simplex v.0.7 , 20 ไบต์

ซิมเพล็กซ์ไม่รู้สึก Golfy วันนี้ > _ <

i@R"spooky"&IIR"me"g
i@                   ~~ take input and copy to register
  R"spooky"          ~~ write that string to the strip (increment byte after every character)
           &II       ~~ write the register (incremented twice) to the strip
              R"me"  ~~ write that string to the strip
                   g ~~ output the strip

คุณยังคงเอาชนะ Vitsy oo
Addison Crump

@VoteToClose อย่ารู้สึกแย่เกินไป ซิมเพล็กซ์รุ่นสุดท้ายจะมีอักขระประมาณ 25+ ตัว ทั้งสองวิธี 20 หรือ 21 ไบต์ไม่ได้เข้าใกล้ 17; -;
Conor O'Brien


1
@VoteToClose คุณคาดหวังอะไร เขาเป็น mod XD
Conor O'Brien

3
เราจำเป็นต้องเพิ่มสิ่งนี้ไปยังรายการ meme
Addison Crump

3

C, 58 ไบต์

main(a,b)char**b;{printf("%sspooky%dme",*++b,atoi(*b)+2);}

atoi() อาจไม่จำเป็น


1. ความล้มเหลวของฉันgccเพราะมันขึ้นอยู่กับลำดับการประเมินผล 2. int**bบันทึกไบต์ด้วย
ugoren

3

Mathematica, 45 27 ไบต์

Print[#,"spooky",#+2,"me"]&

g=ToString[#]<>"spooky"<>ToString[#+2]<>"me"&

ขอบคุณ Martin Büttnerสำหรับการปรับปรุงที่สำคัญ (และการต้อนรับที่อบอุ่น)


2
ยินดีต้อนรับสู่ PPCG! ฟังก์ชั่นที่ไม่มีชื่อนั้นใช้งานได้ดีดังนั้นคุณไม่จำเป็นต้องใช้g=และฉันคิดว่าPrint[#,"spooky",#+2,"me"]&ควรใช้งานได้เช่นกัน :)
Martin Ender

เกี่ยวกับRow@{#,spooky,#+2,me}&อะไร เอาต์พุตคล้ายกันกับการมองเห็นหากไม่ได้กำหนดตัวแปร
2012rcampion

3

Minkolang 0.10 , 49 ไบต์

ฉันไม่มีวิธีแปลงจำนวนเต็มเป็นสตริง (ยัง!) ดังนั้นนี่จึงนานกว่ามาก

"me"nd2+(dl%"0"+$rl:d)"spooky"2g(dl%"0"+$rl:d)$O.

ลองที่นี่

คำอธิบาย

(dl%"0"+$rl:d)ทำหน้าที่ในการแปลง int เป็นสตริง ถ้าเรื่องนี้ถูกแทนที่ด้วยตัวอักษรตัวเดียว (ชอบZ) แล้ววิธีการแก้ปัญหาของฉันจะเป็นเพียงแค่23 ไบต์

"me"nd2+Z"spooky"2gZ$O.

ndใช้จำนวนเต็มจากการป้อนข้อมูลและทำซ้ำ 2+เพิ่ม 2 และ2gใหม่กว่ารับอินพุตเริ่มต้นและวางไว้บนสุดของสแต็ก $O.เอาต์พุตสแต็กทั้งหมดเป็นจำนวนเต็มและหยุด


แน่นอนว่ามันสั้นกว่าไหมที่จะเอาท์พุทตัวเลขเป็นตัวเลข?
Sp3000

การส่งออกเป็นตัวเลขจะเพิ่มพื้นที่โดยอัตโนมัติไปยังเอาต์พุต ดังนั้นมันจึงเป็น "2 spooky4 me"
El'endia Starman

3

Lua สำหรับ windows 41 ไบต์

n=io.read()print(n.."spooky"..n+2 .."me")

ทดสอบกับ lua สำหรับ windows

มันจะนำเข้าผ่าน io.read แล้วเก็บไว้ในตัวแปร n จากนั้นในบรรทัดเดียวกันพิมพ์ตัวแปร n แล้ว "ผี" แล้ว n + 2 ในที่สุดมันพิมพ์ "ฉัน"


1
ลบพื้นที่ว่างออกและบันทึกไบต์n=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer - หากไม่มีช่องว่าง2.จะถือว่าเป็นตัวเลข
Egor Skriptunoff

p.lua: print(.....'spooky'.. ...+2 ..'me') วิธีการเรียกใช้: lua51.exe p.lua 2ขนาด = 35 ไบต์
Egor Skriptunoff

3

โรเตอร์ 15 ไบต์

&"spooky"~2+"me

ภาษาถูกสร้างขึ้นหลังจากการท้าทาย ไม่ทำงานในล่ามออนไลน์ (ใช้ eval อินพุท)


ลูกชายดำ คุณแซงหน้าเดนนิส ในที่สุด ไชโย!
Addison Crump

1
โรเตอร์นั้นตายแล้วสำหรับฉันอย่าพยายามคืนชีพมันอีกโปรด
ปาเก็ตตี้

1
เป็นงานที่ดีแม้ใน Rotor !! คุณควรให้รางวัลกับชีวิต
Rɪᴋᴇʀ

3

คุกกี้ขนาด 16 ไบต์ (ไม่ใช่แบบแข่งขันกัน)

โปรดทราบว่าการเปลี่ยนแปลงล่าสุดไปที่หน้า Github ถูกไม่ได้ทำเพื่อความท้าทายนี้คุกกี้ยังคงอยู่ในการพัฒนา

wŕspooky[r+2]me"

คำอธิบาย:

wŕspooky[r+2]me"
w                 start write command
 ŕ                take input
  spooky          write spooky
        [r+2]     compute input + 2
             me   write me
               "  close write command.

@Mego ทำไมคุณถึงไม่เพิ่มการแข่งขัน? แค่ถาม.

ภาษาถูกสร้างขึ้น 5 เดือนหลังจากการโพสต์ความท้าทาย
Mego

@Mego ไม่ทราบเกี่ยวกับระบบนั้น ขอบคุณที่ให้ความกระจ่างแก่ฉัน;)

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

ขวา. นั่นทำให้รู้สึก

3

เยลลี่ไม่ใช่การแข่งขัน

13 ไบต์ คำตอบนี้ไม่ใช่การแข่งขันเนื่องจากความท้าทายมาก่อนการสร้างเยลลี่

+0,2ż“×¥X“ŀ`»

ฉันไม่สามารถช่วยเหลือ QUARTATA ได้

ลองออนไลน์!

มันทำงานอย่างไร

+0,2ż“×¥X“ŀ`»  Main link. Input: n

+0,2           Add [0, 2] to n, resulting in [n, n + 2].
     “×¥X“ŀ`»  Yield ['spooky, 'me'] by indexing into a dictionary.
    ż          Zip the results to left and right with each other.
               This yields [[n, 'spooky'], [n + 2, 'me']], which is flattened
               before printing.

7
อย่างใดอย่างหนึ่งไม่ outgolf ... quartata
Arcturus

ฉันไม่สามารถก้าวข้ามควอร์ตาได้ แต่เนื่องจากคำตอบไม่ใช่การแข่งขันฉันจึงสามารถให้ความช่วยเหลือได้ +2ṭż“×¥X“ŀ`»
Erik the Outgolfer

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.