Halloween Golf: wyzwanie 2spooky4me!

41

Obecnym memem internetowym jest wpisywanie 2spooky4me, a druga osoba wpisuje 3spooky5me, zgodnie ze (n)spooky(n+2)mewzorem.

Twoim zadaniem jest wdrożenie tego wzoru w wybranym języku. Powinieneś napisać program lub funkcję, która pobiera wartość n(ze standardowego wejścia jako argumentu funkcji lub najbliższej alternatywy) i wypisuje ciąg znaków (n)spooky(n+2)me(bez nawiasów; do standardowego wyjścia, jako wartość zwracaną dla funkcji lub najbliższą alternatywę ).

Twoje rozwiązanie powinno działać dla wszystkich danych wejściowych, od 1maksymalnie 2 poniżej maksymalnej reprezentowanej liczby całkowitej w twoim języku (na przykład 2^32-3dla C na komputerze 32-bitowym).

Przykładowa implementacja w Pythonie:

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

spooky(2) -> "2spooky4me"

To jest , więc standardowe luki są zabronione, a najkrótsza odpowiedź w bajtach wygrywa!

Tabela liderów

Fragment kodu na dole tego postu generuje tabelę wyników na podstawie odpowiedzi a) jako lista najkrótszych rozwiązań dla każdego języka oraz b) jako ogólna tabela wyników.

Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:

## Language Name, N bytes

gdzie Njest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:

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

Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:

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

Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie:

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

Mego
źródło
2
W przypadku punktów bonusowych: Wprowadź %dspooky%dme, sprawdź i wróć w serii.
klaszcz
24
To prawda, ale Dennis nadal wygrałby
klaszcz
7
Kim jest Dennis? : O
NuWin
10
@NuWin Dennis jest drogą. Dennis jest światłem.
Alex A.
1
@NuWin Dennis jest miłością, Dennis jest życiem

Odpowiedzi:

44

gs2, 15 bajtów

Wygrałem z Dennisa!

CP437:

spooky•me♣╨V↕0B

Zrzut szesnastkowy:

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

Na początku programu STDIN jest wypychany (np. Ciąg "3") i zapisywany w zmiennej A. Pierwsze dziesięć bajtów programu wypycha dwa ciągi "spooky"i "me"na stos. Następnie:

  • d0wypycha zmienną A.
  • 56 analizuje to jako liczbę.
  • 12 30 zwiększa to o dwa.
  • 42zamienia dwa górne elementy na stosie, pozostawiając "3" "spooky" 5 "me".

Ostatni stos jest drukowany jako 3spooky5me.

Lynn
źródło
4
Cholera jasna, to krótko. +1
Addison Crump
11
GJ, ale Dennis może przyjść tutaj i przechytrzyć cię, aby zachować swoją reputację.
TheDoctor
7
Co nie, jak to zrobiłeś
spaghetto
3
Właśnie zdałem sobie sprawę ... czy gs2 oznacza „golf script 2”?
mbomb007,
5
Nawiasem mówiąc, dodałem GS2 do mojej rodziny tłumaczy online. Wypróbuj online!
Dennis,
30

GS2, 17 bajtów

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

NIE MOGĘ WYCHŁAĆ POMOCY DENNISA

spaghetto
źródło
29
istotne
Downgoat
3
Człowieku, to takie dziwne, że obecnie mamy 4 języki związane z pierwszym i 3 języki związane z drugim: P
ETHproductions
24

Utknął, 17 bajtów

i_2+"spooky";"me"

EDYCJA: CHYBA, ŻE POWINIENEŚ POWIEDZIEĆ, ŻE JESTEM STUCK W 17 BĘDZIE

spaghetto
źródło
1
Hej spoko, ktoś faktycznie używa Stuck: D
Kade
@Shebang Naprawdę lubię Stuck. Chociaż byłoby miło, gdyby miał lepsze metody manipulowania tablicami.
spaghetto
21

GolfScript, 17 bajtów

~.2+"spooky"\"me"

Wypróbuj online na Web GolfScript .

Jak to działa

~        # Evaluate the input.
.2+      # Push a copy and add 2.
"spooky" # Push that string.
\        # Swap it with the computed sum.
"me"     # Push that string.
Dennis
źródło
10

Szef kuchni, 414 bajtów

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.

Przepis na katastrofę. Nie próbuj tego w domu.

spaghetto
źródło
6
Mmm To niektóre straszne smaki, które tam masz.
Addison Crump,
9

TeaScript, 18 bajtów

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

Niestety tego ciągu nie można skompresować, więc jest on tak krótki, jak to tylko możliwe

Downgoat
źródło
12
Witamy w 18. bajcie! : P
spaghetto
9

Pip, 18 bajtów

Wygląda na to, że jestem tutaj na drugim poziomie języków golfowych. : ^ P

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

Pobiera liczbę jako argument wiersza polecenia i umieszcza odpowiednie elementy w tablicy, która jest łączona razem i drukowana automatycznie na końcu programu.

DLosc
źródło
8

dc, 20 bajtów

?dn[spooky]P2+n[me]P
daniero
źródło
8

Japt, 17 16 bajtów

U+"spooky{U+2}me

Japt ( Ja vascri pt skrócony) to język mojego wynalazku. Jest nowszy niż to wyzwanie; dlatego odpowiedź ta nie jest konkurencyjna. W przeciwieństwie do moich pozostałych siedmiu niepublikowanych języków, ten ma aktualnie rozwijanego tłumacza, który już częściowo działa.

Chciałem to opublikować, ponieważ podoba mi się, że ma taką samą długość jak wszystkie istniejące odpowiedzi na pierwszym miejscu na drugim miejscu. Oto jak to działa:

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

I masz to. Specyfikacja wszystkich użytych tu funkcji została sfinalizowana 29 października; nic się nie zmieniło, by ta odpowiedź była krótsza. Oto tłumacz , zgodnie z obietnicą.

ETHprodukcje
źródło
Jestem pewien, że to było przed shoco, ale myślę, że mógłbyś to zrobić {U}2mezamiast {U+2}me: P
Oliver
7

Gol> <> , 21 bajtów

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

Chyba jestem ... związany z Perlem? Wypróbuj online .

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)
Sp3000
źródło
7

Vitsy, 21 bajtów

Uwaga: Zpolecenie zostało wydane po rozpoczęciu tego wyzwania, ale nie zostało wykonane dla tego wyzwania.

VVN „ykoops” ZV2 + N „em” Z
V Chwyć górny element stosu (wejście) i uczyń go a
                       zmienna globalna.
 V Wywołaj to - przesuń zmienną globalną na szczyt stosu.
  N Wypisz to jako liczbę.
   „ykoops” Wciśnij „upiornego” na stos.
           Z Wydrukuj wszystko.
            V2 + N Ponownie wywołaj zmienną globalną, dodaj dwa, a następnie wyślij jako num.
                „em” Z Wciśnij „mnie” na stos i wyślij wszystko.

Bardziej różnorodne spoopy przy użyciu wielu stosów (27 bajtów):

& „ykoops” i „em”? DN? Z? 2 + N? Z

& Zrób nowy stos i przejdź do niego.
 „ykoops” Wciśnij „upiorne” do bieżącego stosu.
         & „em” Zrób to, co ostatnie z „ja”.
              ? Przenieś nad stosem.
               DN Wyjście wejściowe.
                 ? Z Przenieś stos (ten z „upiornym”) i wydrukuj go.
                   ?? Wróć do oryginalnego stosu.
                     2 + N Dodaj 2 do wejścia i wyślij jako liczbę.
                        ?? Z Przejdź do stosu z napisem „ja” i wydrukuj go.

Wypróbuj online!

Addison Crump
źródło
Zastanawiam się tylko, dlaczego struny są odwrócone?
Cyoce
Pcha znaki do stosu jeden po drugim.
Soham Chowdhury
6

Julia, 23 bajty

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

Tworzy to nienazwaną funkcję lambda, która akceptuje liczbę całkowitą i zwraca ciąg znaków. Dane wyjściowe są konstruowane przy użyciu interpolacji ciągów Julii.

Alex A.
źródło
5

Rubin, 25 bajtów

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

To tworzy nienazwaną lambda, która akceptuje liczbę całkowitą i zwraca ciąg znaków. Ciąg jest konstruowany przy użyciu interpolacji napisów Ruby.

Alex A.
źródło
5

APL, 25 22 bajtów

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

Tworzy to nienazwany ciąg funkcji monadycznych, który akceptuje liczbę całkowitą po lewej stronie i zwraca ciąg znaków.

Wartości liczbowe są konwertowane na ciągi za pomocą . Tablica ciągów jest łączona w pojedynczy ciąg za pomocą .

Wypróbuj online

Zaoszczędź 3 bajty dzięki Thomasowi Kwa!

Alex A.
źródło
5

JavaScript (ES6) 23 21 bajtów

Prosta funkcja, która zostanie zmiażdżona przez gry w golfa lanqs:

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

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

Specjalne podziękowania dla ETHproductions za oszczędność 2 bajtów

Użytkownik ogólny
źródło
NOICE! Być może uda ci się skrócić ciągi szablonów, ale nie mogę wymyślić żadnego sposobu, aby to zrobić
MayorMonty
Dwa bajty zapisane:_=>_+`spooky${_+2}me`
ETHprodukcje
Dziękuję, ale teraz poprawka wydaje się tak oczywista, że ​​czuję się głupio. Myślę, że jest to najkrótszy możliwy sposób zrobienia tego w JavaScript, mogę się mylić (mam nadzieję, że się mylę)
Użytkownik ogólny
5

05AB1E, 14 10 bajtów

DÌs’ÿæªÿme

Wypróbuj online.

Brak konkurencji od 05AB1E jest nowszy niż to wyzwanie.

Wyjaśnienie

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.
spaghetto
źródło
2
Wydaje się, że działa to z Dusuniętymi dla 9 bajtów
dzaima,
4

PHP, 55 47 46 42 34 bajty

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

Akceptuje liczbę jako dane wejściowe z wiersza poleceń.

Kredyty :)

Dziękujemy za zaoszczędzenie 4 bajtów!

Dzięki inserttusernamehere za zapisanie 8 bajtów!


źródło
function a($a){echo$a,"spooky",$a+2,"me";}
manatwork
Możesz zapisać 4 bajty , usuwając "s. Można nawet Zapisz 4 więcej bajtów poprzez linię poleceń i odrzucić argumenty funkcji w następujący sposób: <?=($a=$argv[1]).spooky.($a+2).me;.
inserttusernamehere
4

Chaîne , 15 bajtów

pytanie niekonkurencyjne, język postdatates

{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

Wyjściowy wynik.

Conor O'Brien
źródło
Wyjście to „spookyme 4 2” (oddzielone
nowym wierszem
@fschmengler Musiałem coś popsuć podczas aktualizacji interpretera. Proszę czekać.
Conor O'Brien,
@fschmengler W porządku, błędy zostały naprawione. Powinno teraz działać.
Conor O'Brien
3

Python, 31 bajtów

lambda n:"%dspooky%dme"%(n,n+2)

Zapytaj a dostaniesz.

Dennis
źródło
Python 3.6+ lambda n:f'{n}spooky{n+2}me'dla 28 bajtów.
mypetlion
3

Simplex v.0.7 , 20 bajtów

Simplex po prostu dzisiaj nie czuje się golfistą. > _ <

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
Conor O'Brien
źródło
Nadal pokonujesz Vitsy. z oo
Addison Crump
@VoteToClose Nie czuj się tak źle. Ostatnia wersja Simplex miałaby około 25 znaków. Tak czy inaczej, 20 lub 21 bajtów nie zbliża się do 17; -;
Conor O'Brien
1
@VoteToClose Czego się spodziewałeś? On jest modem XD
Conor O'Brien
3
Musimy dodać to do listy memów.
Addison Crump
3

C, 58 bajtów

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

atoi() może być niepotrzebne.

Chris Loonam
źródło
1. Nie gccdziała, ponieważ zależy to od kolejności oceny. 2. Zapisz bajt za pomocą int**b.
ugoren,
3

Mathematica, 45 27 bajtów

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

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

Podziękowania dla Martina Büttnera za znaczną poprawę (i ciepłe powitanie).

Wszechobecny
źródło
2
Witamy w PPCG! Funkcje nienazwane są w porządku, więc nie potrzebujesz g=i myślę, że Print[#,"spooky",#+2,"me"]&powinno również działać. :)
Martin Ender
Co Row@{#,spooky,#+2,me}&? Dane wyjściowe są wizualnie podobne, jeśli zmienne nie są zdefiniowane.
2012rcampion
3

Minkolang 0,10 , 49 bajtów

Nie mam sposobu na konwersję liczb całkowitych na ciągi (jeszcze!), Więc jest to znacznie dłużej.

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

Wypróbuj tutaj.

Wyjaśnienie

(dl%"0"+$rl:d)wykonuje konwersję int na ciąg. Gdyby to zostało zastąpione jednym znakiem (jak Z), wtedy moje rozwiązanie miałoby tylko 23 bajty .

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

ndpobiera z wejścia liczbę całkowitą i kopiuje ją. 2+dodaje 2, a 2gpóźniej pobiera początkowe dane wejściowe i umieszcza je na szczycie stosu. $O.wypisuje cały stos jako liczby całkowite i zatrzymuje się.

El'endia Starman
źródło
Czy na pewno krótsze jest wyprowadzanie liczb jako liczb?
Sp3000,
Wypisanie jako liczba automatycznie dodaje spację do wyniku. Więc byłoby to „2 spooky4 me”.
El'endia Starman
3

Lua na Windows, 41 bajtów

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

przetestuj z lua dla Windows

pobiera dane wejściowe przez io.read, a następnie przechowywane w zmiennej n, a następnie w tym samym wierszu wypisuje zmienną n, a następnie „upiornie”, a następnie n + 2, w końcu wypisuje „ja”

Alex Allen
źródło
1
Usuń białe znaki i oszczędzaj bajtyn=io.read()print(n.."spooky"..n+2.."me")
Digital Veer
1
@DigitalVeer - Bez spacji 2.będą traktowane jako liczby.
Egor Skriptunoff,
p.lua: print(.....'spooky'.. ...+2 ..'me') Jak uruchomić: lua51.exe p.lua 2Rozmiar = 35 bajtów.
Egor Skriptunoff,
3

Wirnik, 15 bajtów

&"spooky"~2+"me

Język powstał po wyzwaniu. Nie działa w tłumaczu online (używa eval danych wejściowych).

spaghetto
źródło
Tama synu. Rozgryzłeś Dennisa. Wreszcie. Brawo!
Addison Crump
1
Rotor jest dla mnie martwy, nie próbuj go wskrzeszać, proszę.
spaghetto
1
Dobra robota, nawet w Rotor !! Powinieneś nagrodzić to życiem.
Rɪᴋᴇʀ
3

Ciasteczko , 16 bajtów (niekonkurujące)

Pamiętaj, że ostatnie zmiany na stronie Github nie zostały wprowadzone dla tego wyzwania, Cookie jest wciąż w fazie rozwoju.

wŕspooky[r+2]me"

Wyjaśnienie:

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
źródło
@Mego Dlaczego dodałeś niekonkurujących? Tylko pytam.
Język został utworzony 5 miesięcy po opublikowaniu wyzwania.
Mego
@Mego Nie wiedziałem o tym systemie. Dzięki za oświecenie mnie;)
Miło, że mogłem pomóc. Jeśli przesłanie jest prawidłowe, ale użyte języki / funkcje nie istniały przed opublikowaniem wyzwania (na głównym lub w piaskownicy), należy je oznaczyć jako niekonkurujące, chyba że Wyzwanie pozwala konkurować nowszym językom / funkcjom.
Mego
Dobrze. To ma sens.
3

Galaretka, niekonkurująca

13 bajtów Ta odpowiedź nie konkuruje, ponieważ wyzwanie poprzedza powstanie galaretki.

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

NIE MOGĘ PRZECZYTAĆ POMOCY KWARTANYCH

Wypróbuj online!

Jak to działa

+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.
Dennis
źródło
7
Nie tylko outgolf ... quartata?
Arcturus
Nie wydaje mi się, by prześcignąć quartata, ale ponieważ odpowiedź jest niekonkurencyjna, mogę pomóc. +2ṭż“×¥X“ŀ`»
Erik the Outgolfer