Halloween Golf: O desafio 2spooky4me!


41

Um meme atual da Internet é digitar 2spooky4me, com uma segunda pessoa digitando 3spooky5me, seguindo o (n)spooky(n+2)mepadrão.

Sua missão é implementar esse padrão no idioma escolhido. Você deve escrever um programa ou função que use um valor n(da entrada padrão, como argumento da função ou alternativa mais próxima) e produza a string (n)spooky(n+2)me(sem parênteses; na saída padrão, como valor de retorno de uma função ou alternativa mais próxima) )

Sua solução deve funcionar para todas as entradas, de 1até 2 abaixo do valor inteiro máximo representável do seu idioma ( 2^32-3para C em uma máquina de 32 bits, por exemplo).

Exemplo de implementação em Python:

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

spooky(2) -> "2spooky4me"

Isso é , portanto , brechas comuns são proibidas e a resposta mais curta em bytes vence!

Entre os melhores

O snippet de pilha na parte inferior desta postagem gera o cabeçalho das respostas a) como uma lista da solução mais curta por idioma eb) como um cabeçalho geral.

Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:

## Language Name, N bytes

onde Nestá o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:

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

Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:

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

Você também pode transformar o nome do idioma em um link que será exibido no snippet:

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


2
Para pontos de bônus: Insira %dspooky%dme, valide e retorne em seguida na série.
clap

24
É verdade, mas Dennis ainda venceria
aplaudir

7
Quem é Dennis? : O
NuWin

10
@NuWin Dennis é o caminho. Dennis é a luz.
Alex A.

11
@NuWin Dennis é amor, Dennis é vida

Respostas:


44

gs2, 15 bytes

Eu superei Dennis!

CP437:

spooky•me♣╨V↕0B

Despejo hexagonal:

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

No início do programa, STDIN é pressionado (por exemplo, a string "3") e armazenado na variável A. Os primeiros dez bytes do programa enviam duas strings "spooky"e "me"para a pilha. Então:

  • d0empurra variável A.
  • 56 analisa como um número.
  • 12 30 aumenta em dois.
  • 42troca os dois principais elementos da pilha, saindo "3" "spooky" 5 "me".

A pilha final é impressa como 3spooky5me.


4
Santo inferno, isso é curto. +1
Addison Crump

11
GJ, mas Dennis pode vir aqui e superar você para preservar a reputação dele.
TheDoctor

7
O que não como como você fez isso
um Spaghetto

3
Acabei de perceber ... gs2 significa "script de golfe 2"?
mbomb007

5
A propósito, adicionei o GS2 à minha família de intérpretes online, Experimente online!
Dennis


24

Preso, 17 bytes

i_2+"spooky";"me"

EDIT: Acho que você poderia dizer que estou preso aos 17 bytes


11
Ei legal, alguém realmente usando Stuck: D
Kade

@ Shebang, eu realmente gosto do Stuck. Embora fosse bom se houvesse métodos melhores para manipular matrizes.
a spaghetto

21

GolfScript, 17 bytes

~.2+"spooky"\"me"

Experimente online no Web GolfScript .

Como funciona

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

Chef, 414 bytes

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.

Uma receita para o desastre. Não tente isso em casa.


6
Milímetros. Esses são alguns gostos assustadores que você chegou lá.
Addison Crump #

9

TeaScript, 18 bytes

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

Infelizmente, essa string não pode ser compactada, portanto é basicamente o mais curto possível.


12
Bem-vindo ao 18º byte! : P
a spaghetto

9

Pip, 18 bytes

Parece que estou no segundo nível de idiomas de golfe aqui. : ^ P

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

Pega o número como um argumento de linha de comando e coloca os elementos apropriados em uma matriz, que é unida e impressa automaticamente no final do programa.



8

Japonês, 17 16 bytes

U+"spooky{U+2}me

Japt ( Ja vascri pt encurtado) é uma linguagem da minha invenção. É mais novo que esse desafio; portanto, essa resposta não é competitiva. Ao contrário das minhas outras sete línguas não publicadas, esta possui um intérprete real que está sendo desenvolvido e já está parcialmente funcionando.

Eu queria postar isso porque gosto de ter o mesmo tamanho de todas as respostas existentes do primeiro lugar do segundo lugar. Veja como funciona:

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

E aí está. As especificações para todas as funcionalidades usadas aqui foram finalizadas em 29 de outubro; nada foi alterado para tornar essa resposta mais curta. Aqui está o intérprete , como prometido.


Tenho certeza que isso foi pré-Shoco, mas eu acho que você poderia ter feito {U}2meem vez de {U+2}me: P
Oliver

7

Gol> <> , 21 bytes

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

Acho que estou ... amarrado com Perl? Experimente 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 bytes

Nota: o Zcomando foi feito após o início desse desafio, mas não foi feito para esse desafio.

VVN "ykoops" ZV2 + N "em" Z
V Pegue o item superior da pilha (a entrada) e faça dele um
                       variável global.
 V Ligue - empurre a variável global para o topo da pilha.
  N Faça a saída como um número.
   "ykoops" Empurre 'spooky' para a pilha.
           Z Mostra tudo.
            V2 + N Chame a variável global novamente, adicione dois e depois faça a saída como num.
                "em" Z Empurre 'me' para a pilha e produza tudo.

Mais variação de spoopy usando várias pilhas (27 bytes):

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

& Faça uma nova pilha e vá para ela.
 "ykoops" Empurre 'spooky' para a pilha atual.
         & "em" Faça o último para as coisas com 'eu'.
              ? Mova-se sobre uma pilha.
               DN Saída da entrada.
                 Z Mova-se sobre uma pilha (aquela com 'assustador') e imprima-a.
                   ?? Volte para a pilha original.
                     2 + N Adicione 2 à entrada e faça a saída como um número.
                        Z Vá para a pilha com 'eu' e imprima-a.

Experimente online!


Apenas imaginando, por que as cordas são invertidas?
Cyoce 23/02

Está empurrando os caracteres para a pilha, um por um.
Soham Chowdhury 23/03

6

Julia, 23 bytes

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

Isso cria uma função lambda sem nome que aceita um número inteiro e retorna uma sequência. A saída é construída usando a interpolação de seqüência de caracteres de Julia.


5

Ruby, 25 bytes

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

Isso cria uma lambda sem nome que aceita um número inteiro e retorna uma string. A string é construída usando a interpolação de string do Ruby.


5

APL, 25 22 bytes

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

Isso cria um trem de função monádica sem nome que aceita um número inteiro à esquerda e retorna uma string.

Valores numéricos são convertidos em cadeias usando . A matriz de cadeias é unida em uma única cadeia usando .

Experimente online

Economizou 3 bytes graças a Thomas Kwa!


5

Javascript (ES6) 23 21 bytes

Uma função simples que será esmagada pelos lanqs de golfe:

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

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

Agradecimentos especiais à ETHproductions por economizar 2 bytes


NOICE! Você pode reduzir as seqüências de caracteres do modelo, mas não consigo pensar em nenhuma maneira de fazê-lo #
MayorMonty

Dois bytes salvos:_=>_+`spooky${_+2}me`
ETHproductions

Obrigado, mas agora a correção parece tão óbvia que me sinto idiota. Eu acho que isso é o mais curto caminho possível fazer isso em JavaScript, eu poderia estar errado (Espero que eu esteja errado)
Generic User

5

05AB1E, 14 10 bytes

DÌs’ÿæªÿme

Experimente online.

Não competir desde 05AB1E é mais novo que esse desafio.

Explicação

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
Isso parece funcionar com os D9 bytes removidos
dzaima

4

PHP, 55 47 46 42 34 bytes

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

Aceita o número como entrada da linha de comando.

Créditos :)

Obrigado ao manatwork por economizar 4 bytes!

Obrigado a insertusernamehere por salvar 8 bytes!


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

Você pode salvar 4 bytes removendo os "s. Você pode até mesmo salvar mais 4 bytes , tendo um argumento de linha de comando e descartar a função, assim: <?=($a=$argv[1]).spooky.($a+2).me;.
insertusernamehere

4

Chaîne , 15 bytes

não-concorrente, pergunta pós-datas de idiomas

{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

Saída implícita.


A saída é `spookyme 4 2" (nova linha separada)
Fabian Schmengler 01/11/2015

@fschmengler Devo ter estragado alguma coisa enquanto atualizava o intérprete. Por favor espere.
Conor O'Brien

@fschmengler Tudo bem, os erros foram corrigidos. Deve funcionar agora.
Conor O'Brien


3

Simplex v.0.7 , 20 bytes

Hoje, o Simplex simplesmente não está se sentindo muito satisfeito. > _ <

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

Você ainda venceu Vitsy. oo
Addison Crump

@VoteToClose Não se sinta muito mal. A última versão do Simplex teria ~ 25 + caracteres. De qualquer maneira, 20 ou 21 bytes não chegam nem perto de 17; -;
Conor O'Brien


11
@VoteToClose O que você esperava? Ele é um mod XD
Conor O'Brien

3
Precisamos adicionar isso à lista de memes.
Addison Crump #:

3

C, 58 bytes

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

atoi() pode ser desnecessário.


1. Falha no meu gcc, porque depende da ordem de avaliação. 2. Salve um byte com int**b.
Ugoren

3

Mathematica, 45 27 bytes

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

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

Agradecemos a Martin Büttner pela melhoria significativa (e pela calorosa recepção).


2
Bem-vindo ao PPCG! Funções sem nome são boas, então você não precisa do g=e acho que Print[#,"spooky",#+2,"me"]&deve funcionar também. :)
Martin Ender

Que tal Row@{#,spooky,#+2,me}&? A saída é visualmente semelhante se as variáveis ​​não estiverem definidas.
precisa saber é o seguinte

3

Minkolang 0.10 , 49 bytes

Não tenho como converter números inteiros em seqüências de caracteres (ainda!), Portanto isso é muito mais longo.

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

Experimente aqui.

Explicação

(dl%"0"+$rl:d)faz o trabalho de converter um int em uma string. Se isso fosse substituído por um único caractere (como Z), minha solução seria de apenas 23 bytes .

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

ndpega um número inteiro da entrada e o duplica. 2+adiciona 2 e 2gmais tarde obtém a entrada inicial e a coloca no topo da pilha. $O.gera a pilha inteira como números inteiros e para.


Certamente é mais curto apenas exibir os números como números?
Sp3000

A saída como número adiciona automaticamente um espaço à saída. Então seria "2 spooky4 me".
El'endia Starman 01/11/2015

3

Lua para windows, 41 bytes

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

teste com lua para windows

leva a entrada através de io.read, em seguida, armazenada na variável n, na mesma linha imprime a variável n, em seguida, "spooky", em seguida, n + 2 finalmente, imprime "me"


11
Remova os espaços em branco e salve os bytesn=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

11
@DigitalVeer - Sem o espaço 2.em branco será tratado como um número.
Egor Skriptunoff

p.lua: print(.....'spooky'.. ...+2 ..'me') Como executar: lua51.exe p.lua 2Size = 35 bytes.
Egor Skriptunoff

3

Rotor, 15 bytes

&"spooky"~2+"me

A linguagem foi criada após o desafio. Não funciona no intérprete online (usa avaliação de entrada).


Dam filho. Você superou o Dennis. Finalmente. Viva!
Addison Crump

11
Rotor está morto para mim, não tente ressuscitá-lo, por favor.
a spaghetto

11
Bom trabalho, mesmo em Rotor !! Você deve recompensá-lo com a vida.
Rɪᴋᴇʀ

3

Cookie , 16 bytes (não concorrente)

Observe que as recentes alterações na página do Github não foram feitas para esse desafio. O Cookie ainda está em desenvolvimento.

wŕspooky[r+2]me"

Explicação:

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 Por que você adicionou não concorrentes? Só perguntando.

O idioma foi criado 5 meses após o lançamento do desafio.
Mego

@Ego não sabia sobre esse sistema. Obrigado por me iluminando;)

Feliz em ajudar. Se um envio for válido, mas o (s) idioma (s) / (s) recurso (s) usado (s) antes da publicação do desafio (no principal ou no Sandbox), ele deve ser marcado como não concorrente, a menos que o O desafio permite especificamente que idiomas / recursos mais novos competam.
Mego

Direita. Isso faz sentido.

3

Gelatina, não concorrente

13 bytes Esta resposta não é competitiva, pois o desafio antecede a criação do Jelly.

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

NÃO POSSO SABER QUARTATA AJUDAR

Experimente online!

Como funciona

+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
Simplesmente não se supera ... quartata?
Arcturus

Não consigo superar o quartata, mas, como a resposta não é competitiva, posso ajudar. +2ṭż“×¥X“ŀ`»
Erik the Outgolfer

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.