Halloween Golf: Thử thách 2spooky4me!


41

Một meme internet hiện tại là gõ 2spooky4me, với người thứ hai gõ 3spooky5me, theo (n)spooky(n+2)memẫu.

Nhiệm vụ của bạn là thực hiện mô hình này bằng ngôn ngữ bạn đã chọn. Bạn nên viết chương trình hoặc hàm lấy một giá trị n(từ đầu vào tiêu chuẩn, làm đối số hàm hoặc thay thế gần nhất) và xuất chuỗi (n)spooky(n+2)me(không có dấu ngoặc đơn; thành đầu ra tiêu chuẩn, làm giá trị trả về cho hàm hoặc thay thế gần nhất ).

Giải pháp của bạn sẽ hoạt động cho tất cả các đầu vào, từ 1tối đa 2 dưới giá trị số nguyên đại diện tối đa của ngôn ngữ của bạn ( 2^32-3ví dụ: đối với C trên máy 32 bit).

Ví dụ triển khai trong Python:

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

spooky(2) -> "2spooky4me"

Đây là , vì vậy các lỗ hổng tiêu chuẩn bị cấm và câu trả lời ngắn nhất tính theo byte sẽ thắng!

Bảng xếp hạng

Đoạn trích Stack ở cuối bài này tạo bảng xếp hạng từ các câu trả lời a) dưới dạng danh sách các giải pháp ngắn nhất cho mỗi ngôn ngữ và b) dưới dạng bảng xếp hạng tổng thể.

Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:

## Language Name, N bytes

nơi Nlà kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:

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

Nếu bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ của thông dịch viên), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:

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

Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích:

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


2
Đối với điểm thưởng: Nhập %dspooky%dme, xác nhận và trả lại tiếp theo trong chuỗi.
vỗ tay vào


7
Dennis là ai? : O
NuWin

10
@NuWin Dennis là cách. Dennis là ánh sáng.
Alex A.

1
@NuWin Dennis là tình yêu, Dennis là cuộc sống

Câu trả lời:


44

gs2, 15 byte

Tôi đã vượt qua Dennis!

CP437:

spooky•me♣╨V↕0B

Đổ lục giác:

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

Khi bắt đầu chương trình, STDIN được đẩy (ví dụ chuỗi "3") và được lưu trong biến A. Mười byte đầu tiên của chương trình đẩy hai chuỗi "spooky""me"vào ngăn xếp. Sau đó:

  • d0đẩy biến A.
  • 56 phân tích nó như một số.
  • 12 30 tăng nó lên hai.
  • 42hoán đổi hai yếu tố hàng đầu trên ngăn xếp, để lại "3" "spooky" 5 "me".

Ngăn xếp cuối cùng được in dưới dạng 3spooky5me.


4
Thánh thần ơi, ngắn quá. +1
Addison Crump

11
GJ, nhưng Dennis có thể đến đây và vượt qua bạn để giữ gìn danh tiếng của anh ấy.
TheDoctor

7
Không có gì làm thế nào bạn làm điều đó
một spaghetto

3
Tôi mới nhận ra ... gs2 có nghĩa là "kịch bản golf 2" không?
mbomb007

5
Nhân tiện, tôi đã thêm GS2 cho gia đình phiên dịch trực tuyến của mình, Dùng thử trực tuyến!
Dennis

30

GS2, 17 byte

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

TÔI KHÔNG THỂ GIÚP RA KHỎI DENNIS



3
Man, thật kỳ lạ khi chúng tôi hiện có 4 ngôn ngữ được gắn cho ngôn ngữ thứ nhất và 3 ngôn ngữ được gắn cho thứ hai: P
Sản phẩm ETH

24

Bị mắc kẹt, 17 byte

i_2+"spooky";"me"

EDIT: HƯỚNG DẪN BẠN CÓ THỂ NÓI SAU TÔI CÒN Ở 17 B BYNG


1
Thật tuyệt, ai đó thực sự đang sử dụng Stuck: D
Kade

@Shebang Tôi thực sự rất thích Stuck. Mặc dù sẽ rất tuyệt nếu nó có một số phương pháp tốt hơn để thao tác với mảng.
một spaghetto

21

GolfScript, 17 byte

~.2+"spooky"\"me"

Dùng thử trực tuyến trên Web GolfScript .

Làm thế nào nó hoạt động

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

Đầu bếp, 414 byte

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.

Một công thức cho thảm họa. Đừng cố gắng này ở nhà.


6
Ừm. Đó là một số sở thích ma quái bạn có ở đó.
Addison Crump

9

TeaScript, 18 byte

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

Thật không may, chuỗi này không thể được nén vì vậy về cơ bản là ngắn như nó sẽ nhận được


12
Chào mừng bạn đến với byte thứ 18! : P
một spaghetto

9

Pip, 18 byte

Có vẻ như tôi đang ở trong tầng thứ hai của ngôn ngữ chơi gôn ở đây. : ^ P

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

Lấy số làm đối số dòng lệnh và đặt các phần tử thích hợp trong một mảng, được nối với nhau và tự động in ở cuối chương trình.



8

Japt, 17 16 byte

U+"spooky{U+2}me

Japt ( Ja vascri pt rút gọn) là ngôn ngữ của phát minh của tôi. Nó mới hơn thử thách này; do đó, câu trả lời này là không cạnh tranh. Không giống như bảy ngôn ngữ chưa được công bố khác của tôi, ngôn ngữ này có một trình thông dịch thực tế hiện đang được phát triển và đã hoạt động một phần.

Tôi muốn đăng bài này vì tôi thích độ dài của nó giống như tất cả các câu trả lời ở vị trí thứ nhất hiện có. Đây là cách nó hoạt động:

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

Và bạn có nó rồi đấy! Thông số kỹ thuật cho tất cả các chức năng được sử dụng ở đây đã được hoàn thiện vào ngày 29 tháng 10; không có gì được thay đổi để làm cho câu trả lời này ngắn hơn. Đây là thông dịch viên , như đã hứa.


Tôi chắc chắn đây là pre-shoco, nhưng tôi nghĩ bạn đã có thể thực hiện {U}2methay vì {U+2}me: P
Oliver

7

Gol> <> , 21 byte

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

Tôi đoán tôi ... bị trói với Perl? Hãy thử trực tuyến .

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 byte

Lưu ý: Zlệnh được thực hiện sau khi thử thách này bắt đầu, nhưng không được thực hiện cho thử thách này.

VVN "ykoops" ZV2 + N "em" Z
V Lấy mục trên cùng của ngăn xếp (đầu vào) và biến nó thành một
                       biến toàn cầu.
 V Gọi nó lên - đẩy biến toàn cục lên đỉnh ngăn xếp.
  N Xuất nó dưới dạng số.
   "ykoops" Đẩy 'ma quái' vào ngăn xếp.
           Z Xuất ra tất cả.
            V2 + N Gọi lại biến toàn cục, thêm hai, sau đó xuất dưới dạng num.
                "em" Z Đẩy 'tôi' vào ngăn xếp và xuất ra tất cả.

Biến thể spoopy khác sử dụng nhiều ngăn xếp (27 byte):

& "ykoops" & "em"? DN? Z ?? 2 + N ?? Z

& Tạo một ngăn xếp mới và di chuyển đến nó.
 "ykoops" Đẩy 'ma quái' vào ngăn xếp hiện tại.
         & "em" Làm những điều cuối cùng với 'tôi'.
              ? Di chuyển qua một chồng.
               DN Đầu ra đầu vào.
                 ? Z Di chuyển qua một chồng (cái có 'ma quái') và in nó.
                   ?? Di chuyển trở lại ngăn xếp ban đầu.
                     2 + N Thêm 2 vào đầu vào và xuất dưới dạng số.
                        ?? Z Di chuyển đến ngăn xếp có 'tôi' trong đó và in nó.

Hãy thử trực tuyến!


Chỉ cần tự hỏi, tại sao các chuỗi đảo ngược?
Cyoce

Nó đẩy từng ký tự lên từng chồng một.
Soham Chowdhury

6

Julia, 23 byte

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

Điều này tạo ra một hàm lambda không tên, chấp nhận một số nguyên và trả về một chuỗi. Đầu ra được xây dựng bằng phép nội suy chuỗi của Julia.


5

Ruby, 25 byte

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

Điều này tạo ra một lambda không tên chấp nhận một số nguyên và trả về một chuỗi. Chuỗi được xây dựng bằng phép nội suy chuỗi của Ruby.


5

APL, 25 22 byte

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

Điều này tạo ra một hàm hàm đơn âm không tên, chấp nhận một số nguyên ở bên trái và trả về một chuỗi.

Giá trị số được chuyển đổi thành chuỗi bằng cách sử dụng . Mảng chuỗi được nối thành một chuỗi bằng cách sử dụng .

Dùng thử trực tuyến

Lưu được 3 byte nhờ Thomas Kwa!


5

Javascript (ES6) 23 21 byte

Một chức năng đơn giản sẽ bị nghiền nát bởi các sân golf:

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

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

Đặc biệt cảm ơn ETHproductions đã lưu 2 byte


NÓI! Bạn có thể rút ngắn chuỗi mẫu, nhưng tôi không thể nghĩ ra cách nào để làm như vậy
MayorMonty

Hai byte được lưu:_=>_+`spooky${_+2}me`
ETHproductions

Cảm ơn bạn, nhưng bây giờ sửa chữa dường như quá rõ ràng tôi cảm thấy ngu ngốc. Tôi nghĩ rằng đây là cách ngắn nhất có thể để làm điều này trong Javascript, tôi có thể sai (tôi hy vọng tôi sai)
Người dùng chung

5

05AB1E, 14 10 byte

DÌs’ÿæªÿme

Hãy thử trực tuyến.

Không cạnh tranh kể từ 05AB1E mới hơn thử thách này.

Giải trình

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
Điều này dường như hoạt động với Dloại bỏ 9 byte
dzaima

4

PHP, 55 47 46 42 34 byte

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

Chấp nhận số làm đầu vào dòng lệnh.

Tín dụng :)

Cảm ơn manatwork đã tiết kiệm 4 byte!

Cảm ơn insertusernamehere đã lưu 8 byte!


function a($a){echo$a,"spooky",$a+2,"me";}
manatwork

Bạn có thể lưu 4 byte bằng cách loại bỏ "s. Bạn thậm chí có thể lưu thêm 4 byte bằng cách lấy một đối số dòng lệnh và loại bỏ hàm, như thế này : <?=($a=$argv[1]).spooky.($a+2).me;.
insertusernamehere

4

Cha , 15 byte

không soạn thảo, câu hỏi postdates ngôn ngữ

{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

Ngụ ý đầu ra.


Đầu ra là `spookyme 4 2" (dòng mới được tách ra)
Fabian Schmengler

@fschmengler Tôi đã làm hỏng một cái gì đó trong khi cập nhật trình thông dịch. Hãy đứng bên cạnh.
Conor O'Brien

@fschmengler Được rồi, lỗi đã được sửa. Nó nên hoạt động ngay bây giờ.
Conor O'Brien


3

Simplex v.0.7 , 20 byte

Simplex đơn giản là không cảm thấy golf ngày hôm nay. > _ <

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

Bạn vẫn đánh bại Vitsy. oo
Addison Crump

@VoteToC Đóng Đừng cảm thấy quá tệ. Phiên bản Simplex cuối cùng sẽ có ~ 25 ký tự. Dù bằng cách nào, 20 hoặc 21 byte không đến gần 17; -;
Conor O'Brien


1
@VoteToC Đóng Bạn đã mong đợi điều gì? Anh ấy là một mod XD
Conor O'Brien

3
Chúng ta cần thêm vào danh sách meme.
Addison Crump

3

C, 58 byte

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

atoi() có thể không cần thiết


1. Thất bại với tôi gcc, bởi vì nó phụ thuộc vào thứ tự đánh giá. 2. Lưu một byte với int**b.
ugoren

3

Toán học, 45 27 byte

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

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

Cảm ơn Martin Büttner vì sự cải thiện đáng kể (và sự chào đón nồng nhiệt).


2
Chào mừng đến với PPCG! Các chức năng không tên là tốt, vì vậy bạn không cần g=và tôi nghĩ Print[#,"spooky",#+2,"me"]&cũng nên hoạt động. :)
Martin Ender

Thế còn Row@{#,spooky,#+2,me}&? Đầu ra tương tự trực quan nếu các biến không được xác định.
2012rcampion

3

Chồn 0,10 , 49 byte

Tôi không có cách nào để chuyển đổi số nguyên thành chuỗi (chưa!), Vì vậy điều này dài hơn nhiều.

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

Hãy thử nó ở đây.

Giải trình

(dl%"0"+$rl:d)thực hiện công việc chuyển đổi một int thành một chuỗi. Nếu điều này được thay thế bằng một ký tự đơn (như Z), thì giải pháp của tôi sẽ chỉ là 23 byte .

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

ndlấy một số nguyên từ đầu vào và nhân đôi nó. 2+thêm 2 và 2gsau đó nhận đầu vào ban đầu và đặt nó lên trên cùng của ngăn xếp. $O.xuất toàn bộ ngăn xếp dưới dạng số nguyên và dừng.


Chắc chắn nó ngắn hơn khi chỉ xuất các số dưới dạng số?
Sp3000

Xuất ra dưới dạng số tự động thêm một khoảng trắng cho đầu ra. Vì vậy, nó sẽ là "2 spooky4 me".
El'endia Starman

3

Lua cho windows, 41 byte

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

kiểm tra với lua cho windows

nó nhận đầu vào thông qua io.read sau đó được lưu trữ trong biến n sau đó trên cùng một dòng in biến n rồi "spooky" rồi n + 2 cuối cùng nó in "me"


1
Xóa khoảng trắng và lưu byten=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer - Không có khoảng trắng 2.sẽ được coi là một số.
Egor Skriptunoff

p.lua: print(.....'spooky'.. ...+2 ..'me') Cách chạy: lua51.exe p.lua 2Kích thước = 35 byte.
Egor Skriptunoff

3

Rôto, 15 byte

&"spooky"~2+"me

Ngôn ngữ được tạo ra sau thử thách. Không hoạt động trong trình thông dịch trực tuyến (sử dụng eval đầu vào.)


Đàm con trai. Bạn đã vượt qua Dennis. Cuối cùng. Hoan hô!
Addison Crump

1
Làm ơn chết đi, đừng cố hồi sinh nó.
một spaghetto

1
Công việc tốt, ngay cả ở Rotor !! Bạn nên thưởng cho nó với cuộc sống.
Rɪᴋᴇʀ

3

Cookie , 16 byte (không cạnh tranh)

Lưu ý rằng những thay đổi gần đây của trang Github không được thực hiện cho thử thách này, Cookie vẫn đang được phát triển.

wŕspooky[r+2]me"

Giải trình:

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 Tại sao bạn thêm không cạnh tranh? Chỉ cần hỏi.

Ngôn ngữ được tạo ra 5 tháng sau khi thử thách được đăng.
Mego

@Mego Không biết về hệ thống đó. Cảm ơn đã soi sáng cho tôi;)

Vui mừng được giúp đỡ. Nếu một bài nộp hợp lệ, nhưng (các) ngôn ngữ / tính năng được sử dụng không tồn tại trước khi đăng thử thách (trên chính hoặc trong Hộp cát), thì nó phải được đánh dấu là không cạnh tranh, trừ khi thách thức đặc biệt cho phép các ngôn ngữ / tính năng mới hơn để cạnh tranh.
Mego

Đúng. Điều đó có ý nghĩa.

3

Thạch, không cạnh tranh

13 byte Câu trả lời này không cạnh tranh, vì thử thách trước khi tạo ra Jelly.

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

TÔI KHÔNG THỂ GIÚP QUARTATA

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

+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
Một người không chỉ đơn giản là vượt qua ... quartata?
Arcturus

Tôi dường như không thể vượt qua quartata, nhưng, vì câu trả lời là không cạnh tranh, tôi có thể giúp đỡ. +2ṭż“×¥X“ŀ`»
Erik the Outgolfer 15/2/2017

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.