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


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.


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



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


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.



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.


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


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.



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


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)

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!


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.


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.


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!


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


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.

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!


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.


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

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

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.


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


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


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”


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


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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.