Halloween Golf: ¡El desafío 2spooky4me!


41

Un meme actual de Internet es escribir 2spooky4me, con una segunda persona escribiendo 3spooky5me, siguiendo el (n)spooky(n+2)mepatrón.

Su misión es implementar este patrón en el idioma elegido. Debe escribir un programa o función que tome un valor n(de entrada estándar, como argumento de función o alternativa más cercana), y envíe la cadena (n)spooky(n+2)me(sin paréntesis; a salida estándar, como valor de retorno para una función, o alternativa más cercana )

Su solución debería funcionar para todas las entradas, desde 1hasta 2 por debajo del valor entero máximo representable de su idioma ( 2^32-3por ejemplo, para C en una máquina de 32 bits).

Implementación de ejemplo en Python:

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

spooky(2) -> "2spooky4me"

Este es el , por lo que las lagunas estándar están prohibidas, ¡y la respuesta más corta en bytes gana!

Tabla de clasificación

El Fragmento de pila al final de esta publicación genera la tabla de clasificación a partir de las respuestas a) como una lista de la solución más corta por idioma yb) como una tabla de clasificación general.

Para asegurarse de que su respuesta se muestre, comience con un título, utilizando la siguiente plantilla de Markdown:

## Language Name, N bytes

¿Dónde Nestá el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:

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

Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:

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

También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento:

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


2
Para puntos de bonificación: ingrese %dspooky%dme, valide y devuelva el siguiente en serie.
aplaude el

24
Es cierto, pero Dennis aún ganaría
aplaude el

77
Quien es Dennis? : O
NuWin

10
@NuWin Dennis es el camino. Dennis es la luz.
Alex A.

1
@NuWin Dennis es amor, Dennis es vida

Respuestas:


44

gs2, 15 bytes

Yo superé a Dennis!

CP437:

spooky•me♣╨V↕0B

Volcado hexadecimal:

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

Al comienzo del programa, STDIN se empuja (por ejemplo, la cadena "3") y se almacena en variable A. Los primeros diez bytes del programa empujan dos cadenas "spooky"y "me", a la pila. Luego:

  • d0Empuja variable A.
  • 56 lo analiza como un número.
  • 12 30 lo incrementa en dos.
  • 42intercambia los dos elementos superiores de la pila y se va "3" "spooky" 5 "me".

La pila final se imprime como 3spooky5me.


44
Santo infierno, eso es corto. +1
Addison Crump

11
GJ, pero Dennis podría venir aquí y despreciarte para preservar su reputación.
TheDoctor

77
Qué no cómo cómo hiciste eso
un espagueti el

3
Me acabo de dar cuenta ... ¿gs2 significa "golf script 2"?
mbomb007

55
Por cierto, agregué GS2 a mi familia de intérpretes en línea. ¡Pruébelo en línea!
Dennis

30

GS2, 17 bytes

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

No puedo superar la ayuda de Dennis



3
Hombre, es tan extraño que actualmente tenemos 4 idiomas empatados para el primero y 3 idiomas empatados para el segundo: P
ETHproductions

24

Atascado, 17 bytes

i_2+"spooky";"me"

EDITAR: supongo que podría decir que estoy atascado a los 17 bytes


1
Hola genial, alguien realmente está usando Stuck: D
Kade

@ Shebang Realmente me gusta Stuck. Aunque sería bueno si tuviera algunos mejores métodos para manipular matrices.
un espagueti el

21

GolfScript, 17 bytes

~.2+"spooky"\"me"

Pruébelo en línea en Web GolfScript .

Cómo 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.

Una receta para el desastre. No intente esto en casa.


66
Mm Esos son algunos sabores espeluznantes que tienes allí.
Addison Crump

9

TeaScript, 18 bytes

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

Desafortunadamente, esta cadena no se puede comprimir, por lo que es básicamente tan corta como se pondrá


12
¡Bienvenido al 18 byte! : P
un espagueti el

9

Pip, 18 bytes

Parece que estoy en el segundo nivel de idiomas de golf aquí. : ^ P

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

Toma el número como un argumento de línea de comandos y coloca los elementos apropiados en una matriz, que se une y se imprime automáticamente al final del programa.



8

Japt, 17 16 bytes

U+"spooky{U+2}me

Japt ( Ja vascri pt acortado) es un lenguaje de mi invención. Es más nuevo que este desafío; Por lo tanto, esta respuesta no es competitiva. A diferencia de mis otros siete idiomas inéditos, este tiene un intérprete real que se está desarrollando actualmente y ya está funcionando parcialmente.

Quería publicar esto porque me gusta cómo tiene la misma longitud que todas las respuestas existentes de primer lugar y segundo lugar. Así es 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

Y ahí lo tienes. La especificación para toda la funcionalidad utilizada aquí se finalizó el 29 de octubre; nada fue cambiado para hacer esta respuesta más corta. Aquí está el intérprete , como se prometió.


Estoy seguro de que esto fue antes del shoco, pero creo que podría haberlo hecho en {U}2melugar de {U+2}me: P
Oliver

7

Gol> <> , 21 bytes

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

Supongo que estoy ... atado con Perl? Pruébalo en línea .

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: el Zcomando se realizó después de que comenzó este desafío, pero no se hizo para este desafío.

VVN "ykoops" ZV2 + N "em" Z
V Tome el elemento superior de la pila (la entrada) y conviértalo en un
                       variable global.
 V Invocar: empuje la variable global a la parte superior de la pila.
  N Emitirlo como un número.
   "ykoops" Empuja 'espeluznante' a la pila.
           Z Salida de todo.
            V2 + N Llame a la variable global nuevamente, agregue dos, luego envíe como num.
                "em" Z Empuja 'me' a la pila y envía todo.

Más variación espeluznante usando múltiples pilas (27 Bytes):

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

& Haz una nueva pila y muévete a ella.
 "ykoops" Empuja 'spooky' a la pila actual.
         & "em" Haz lo último para las cosas conmigo.
              ? Muévete sobre una pila.
               DN Salida de la entrada.
                 ? Z Muévete sobre una pila (la que tiene 'espeluznante') e imprímela.
                   ?? Vuelva a la pila original.
                     2 + N Agregue 2 a la entrada y envíela como un número.
                        ?? Z Muévase a la pila con 'yo' en él e imprímalo.

Pruébalo en línea!


Me pregunto, ¿por qué se invierten las cuerdas?
Cyoce

Está empujando caracteres a la pila uno por uno.
Soham Chowdhury

6

Julia, 23 bytes

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

Esto crea una función lambda sin nombre que acepta un número entero y devuelve una cadena. La salida se construye utilizando la interpolación de cadenas de Julia.


5

Rubí, 25 bytes.

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

Esto crea una lambda sin nombre que acepta un número entero y devuelve una cadena. La cadena se construye utilizando la interpolación de cadenas de Ruby.


5

APL, 25 22 bytes

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

Esto crea un tren de funciones monádicas sin nombre que acepta un número entero a la izquierda y devuelve una cadena.

Los valores numéricos se convierten en cadenas usando . El conjunto de cadenas se une en una sola cadena usando .

Pruébalo en línea

¡Guardado 3 bytes gracias a Thomas Kwa!


5

Javascript (ES6) 23 21 Bytes

Una función simple que será aplastada por los lanqs de golf:

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

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

Un agradecimiento especial a ETHproductions por guardar 2 bytes


NOICE! Es posible que pueda acortar las cadenas de plantillas, pero no se me ocurre ninguna forma de hacerlo
MayorMonty

Dos bytes guardados:_=>_+`spooky${_+2}me`
ETHproductions

Gracias, pero ahora la solución parece tan obvia que me siento estúpido. Creo que esta es la forma más corta posible de hacer esto en Javascript, podría estar equivocado (espero estar equivocado)
Usuario genérico

5

05AB1E, 14 10 bytes

DÌs’ÿæªÿme

Pruébalo en línea.

No competir desde 05AB1E es más nuevo que este desafío.

Explicación

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
Esto parece funcionar con Deliminado por 9 bytes
dzaima

4

PHP, 55 47 46 42 34 bytes

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

Acepta el número como entrada de línea de comando.

Créditos :)

¡Gracias a manatwork por guardar 4 bytes!

¡Gracias a insertusernamehere por guardar 8 bytes!


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

Puede guardar 4 bytes quitando el "s. Incluso se puede guardar 4 más bytes mediante la adopción de un argumento de línea de comandos y desechar la función, así: <?=($a=$argv[1]).spooky.($a+2).me;.
insertusernamehere

4

Chaine , 15 bytes

pregunta no competitiva, fecha posterior al idioma

{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

Salida implícita.


La salida es `spookyme 4 2" (nueva línea separada)
Fabian Schmengler

@fschmengler Debo haber estropeado algo al actualizar el intérprete. Por favor espere.
Conor O'Brien el

@fschmengler Muy bien, los errores han sido corregidos. Debería funcionar ahora.
Conor O'Brien el


3

Simplex v.0.7 , 20 bytes

Simplex simplemente no se siente golfoso hoy. > _ <

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

Todavía venciste a Vitsy. oo
Addison Crump

@VoteToClose No te sientas tan mal. La última versión Simplex habría sido de ~ 25 + caracteres De cualquier manera, 20 o 21 bytes no se acercan a 17; -;
Conor O'Brien el


1
@VoteToClose ¿Qué esperabas? Él es un mod XD
Conor O'Brien

3
Necesitamos agregar esto a la lista de memes.
Addison Crump

3

C, 58 bytes

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

atoi() puede ser innecesario


1. Falla en mi gcc, porque depende del orden de evaluación. 2. Guardar un byte con int**b.
Ugoren 03 de

3

Mathematica, 45 27 bytes

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

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

Gracias a Martin Büttner por la mejora significativa (y la cálida bienvenida).


2
Bienvenido a PPCG! Las funciones sin nombre están bien, por lo que no necesita g=y creo que Print[#,"spooky",#+2,"me"]&debería funcionar también. :)
Martin Ender

¿Qué hay de Row@{#,spooky,#+2,me}&? La salida es visualmente similar si las variables no están definidas.
2012 Arcampion

3

Minkolang 0.10 , 49 bytes

No tengo forma de convertir enteros en cadenas (¡todavía!), Así que esto es mucho más largo.

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

Pruébalo aquí

Explicación

(dl%"0"+$rl:d)hace el trabajo de convertir un int en una cadena. Si esto fuera reemplazado por un solo carácter (como Z), entonces mi solución sería de solo 23 bytes .

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

ndtoma un entero de la entrada y lo duplica. 2+agrega 2 y 2gluego obtiene la entrada inicial y la coloca en la parte superior de la pila. $O.genera toda la pila como enteros y se detiene.


¿Seguramente es más corto simplemente dar salida a los números como números?
Sp3000

La salida como número agrega automáticamente un espacio a la salida. Entonces sería "2 spooky4 me".
El'endia Starman

3

Lua para windows, 41 bytes

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

prueba con lua para windows

toma la entrada a través de io.read luego se almacena en la variable n luego en la misma línea imprime la variable n luego "espeluznante" y luego n + 2 finalmente imprime "yo"


1
Eliminar espacios en blanco y guardar bytesn=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer: sin el espacio en blanco 2.se tratará como un número.
Egor Skriptunoff

p.lua: print(.....'spooky'.. ...+2 ..'me') Cómo ejecutar: lua51.exe p.lua 2Tamaño = 35 bytes.
Egor Skriptunoff

3

Rotor, 15 bytes

&"spooky"~2+"me

El lenguaje fue creado después del desafío. No funciona en el intérprete en línea (usa evaluación de entrada).


Dam hijo. Superaste a Dennis. Finalmente. ¡Hurra!
Addison Crump

1
El rotor está muerto para mí, no intentes resucitarlo, por favor.
un spaghetto el

1
Buen trabajo, incluso en Rotor !! Deberías recompensarlo con vida.
Rɪᴋᴇʀ

3

Cookie , 16 bytes (no competitiva)

Tenga en cuenta que los cambios recientes en la página de Github no se realizaron para este desafío, Cookie todavía está en desarrollo.

wŕspooky[r+2]me"

Explicación:

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 qué agregaste no competitiva? Sólo preguntaba.

El idioma fue creado 5 meses después de que se publicó el desafío.
Mego

@Mego no sabía sobre ese sistema. Gracias por iluminarme;)

Encantado de ayudar. Si un envío es válido, pero los idiomas / características utilizados no existían antes de la publicación del desafío (ya sea en la página principal o en el Sandbox), debe marcarse como no competitivo, a menos que el El desafío específicamente permite que los nuevos idiomas / características compitan.
Mego

Correcto. Eso tiene sentido.

3

Gelatina, no competidora

13 bytes Esta respuesta no es competitiva, ya que el desafío es anterior a la creación de Jelly.

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

NO PUEDO SUPERAR LA AYUDA DE CUARATA

Pruébalo en línea!

Cómo 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.

77
Uno no simplemente supera al golf ... ¿quartata?
Arcturus

Parece que no puedo superar a los quartata, pero, dado que la respuesta no es competitiva, puedo dar algo de ayuda. +2ṭż“×¥X“ŀ`»
Erik the Outgolfer

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.