Cadılar Bayramı Golf: 2spooky4me Mücadelesi!


41

Mevcut bir internet meme 2spooky4me, ikinci bir kişi ise 3spooky5me yazarak (n)spooky(n+2)mekalıbı izlemektir.

Göreviniz bu kalıbı seçtiğiniz dilde uygulamak. Değer alan bir program veya işlev yazmalısınız n(standart girdiden, işlev argümanı olarak veya en yakın alternatif olarak) ve dizgeyi çıktılar (n)spooky(n+2)me(parantez olmadan; standart çıktıya, bir işlev için dönüş değeri olarak veya en yakın alternatif) ).

Çözümünüz 1, dilinizin maksimum gösterilebilir tamsayı değerinin 2 altına kadar olan tüm girişler için çalışmalıdır ( 2^32-3örneğin, 32 bit makinedeki C için).

Python'da örnek uygulama:

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

spooky(2) -> "2spooky4me"

Bu , bu yüzden standart boşluklar yasaktır ve en kısa cevap bayt olarak kazanılır!

Liderler Sıralaması

Bu yazının altındaki Yığın Parçacığı, a) dil başına en kısa çözümlerin bir listesi olarak ve b) genel bir lider tablosu olarak cevaplardan lider tablosu oluşturur.

Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:

## Language Name, N bytes

Gönderinizin Nbüyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:

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

Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :

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

Dil adını, daha sonra pasajda görünecek bir bağlantı da yapabilirsiniz:

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


2
Bonus puanlar için: Girdi %dspooky%dme, doğrulayın ve seri halinde geri dönün.
alkış


7
Dennis kim? : O
NuWin

10
@ NuWin Dennis yoludur. Dennis ışıktır.
Alex A.,

1
@NuWin Dennis aşktır, Dennis yaşamdır

Yanıtlar:


44

gs2, 15 bayt

Dennis'i aştım!

cp437:

spooky•me♣╨V↕0B

Hex dökümü:

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

Programın başlangıcında, STDIN itilir (örn. String "3") ve değişkende saklanır A. Programın ilk on baytı iki dizgiyi, "spooky"ve "me", yığına iter . Sonra:

  • d0değişken iter A.
  • 56 bir sayı olarak ayrıştırır.
  • 12 30 iki katına çıkarır.
  • 42Üstteki iki elementi yığında değiştirerek bırakır "3" "spooky" 5 "me".

Son yığın olarak basılır 3spooky5me.


4
Kahretsin, bu kısa. +1
Addison Crump,

11
GJ, ama Dennis buraya gelebilir ve itibarını koruman için seni alt etti.
Doktor

7
Nasıl hayır, bunu nasıl yaptınız
bir

3
Yeni farkettim ... gs2 "golf script 2" anlamına geliyor mu?
mbomb007

5
Bu arada, GS2'yi çevrimiçi tercümanlar aileme ekledim, Çevrimiçi deneyin!
Dennis,

30

GS2, 17 bayt

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

DENNİS YARDIMCI OLAMIYORUM



3
Adamım, şu an için tuhaf bir şey şu anda ilk 4 dilde ve ikinci dil için 3 dilde bağlı: P
ETHproductions

24

Sıkışmış, 17 bayt

i_2+"spooky";"me"

EDIT: SİZİN OLABİLİRSİNİZ 17 BYTES'DE ŞİMDİ SABAH EDİYORUM


1
Hey serin, biri aslında Stuck kullanarak: D
Kade 1:15 0

@ Shebang Ben gerçekten Stuck seviyorum. Her ne kadar dizileri değiştirmek için daha iyi yöntemler olsa iyi olurdu.
Bir spaghetto

21

GolfScript, 17 bayt

~.2+"spooky"\"me"

Çevrimiçi olarak Web GolfScript'te deneyin .

Nasıl çalışır

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

Şef, 414 bayt

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.

Afet için bir reçete. Bunu evde denemeyin.


6
Mm. Oradaki ürkütücü lezzetler bu.
Addison Crump,

9

TeaScript, 18 bayt

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

Ne yazık ki bu dize sıkıştırılamaz bu yüzden temelde alacağı kadar kısa


12
18. bayta hoş geldiniz! : P
bir

9

Pip, 18 bayt

Görünüşe göre buradaki ikinci golf sahası dilleri içindeyim. : ^ P

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

Sayıyı komut satırı argümanı olarak alır ve uygun öğeleri bir araya getirilen ve programın sonunda otomatik olarak oluşturulan bir diziye koyar.



8

Japt, 17 16 bayt

U+"spooky{U+2}me

Japt ( Ja vascri pt kısaltılmış) icatımın dili Bu zorluktan daha yeni; bu nedenle, bu cevap rakip değildir. Diğer yedi yayınlanmamış dilin aksine, bu dilin şu anda geliştirilmekte olan ve zaten kısmen çalışan gerçek bir tercümanı var.

Bunu göndermek istedim, çünkü mevcut tüm ilk etapta ikinci sıradaki cevaplarla aynı uzunlukta olmasını seviyorum . İşte nasıl çalışıyor:

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

İşte buyur. Burada kullanılan tüm işlevler için özellik 29 Ekim'de kesinleşti; Bu cevabı daha kısa yapmak için hiçbir şey değiştirilmedi. İşte söz verdiğim gibi tercüman .


Eminim bu shoco öncesi bir şeydi, ama bence {U}2meonun yerine yapabileceğini düşünüyorum {U+2}me: P
Oliver

7

Gol> <> , 21 bayt

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

Sanırım ben ... Perl ile bağlıyım? Çevrimiçi deneyin .

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 Bayt

Not: ZBu meydan okuma başladıktan sonra komut yapıldı, ancak bu meydan okuma için yapılmadı.

VVN "ykoops" ZV2 + N "em" Z
V Yığının en üstünü (giriş) tut ve bir
                       küresel değişken.
 V Çağırın - genel değişkeni yığının üstüne itin.
  N Sayı olarak yazdırın.
   "ykoops" Yığına 'ürkütücü' bastır.
           Z Hepsini çıkar.
            V2 + N Global değişkeni tekrar arayın, iki ekleyin, sonra sayı olarak çıkın.
                "em" Z 'beni' yığına it ve hepsini çıkar.

Birden fazla yığın kullanarak daha fazla casusluk değişimi (27 Bayt):

Ve "ykoops" ve "em"? DN Z'nin ?? 2 + N ?? Z

& Yeni bir yığın oluşturun ve üzerine taşıyın.
 "ykoops" 'Spooky' komutunu geçerli yığına itin.
         & "em" 'Ben' olan şeylere son sözü yap.
              ? Bir yığının üzerinde hareket ettirin.
               DN Girişi çıkış.
                 ? Z Bir yığının üzerine ('ürkütücü' olan) gidin ve yazdırın.
                   ?? Orijinal yığına geri dönün.
                     2 + N Girdiye 2 ekleyin ve sayı olarak çıkarın.
                        ? Z İçinde 'ben' varken yığına git ve yazdır.

Çevrimiçi deneyin!


Merak ediyorum, neden dizgiler ters çevrilmiş?
Şubat'ta Cyoce 2

Karakterleri yığına tek tek itiyor.
Soham Chowdhury

6

Julia, 23 bayt

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

Bu bir tamsayı kabul eden ve bir dize döndüren adsız bir lambda işlevi oluşturur. Çıktı Julia'nın dize enterpolasyonu kullanılarak inşa edilmiştir.


5

Yakut, 25 bayt

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

Bu bir tamsayıyı kabul eden ve bir dize döndüren adsız bir lambda oluşturur. String Ruby'nin string enterpolasyonu kullanılarak oluşturulmuştur.


5

APL, 25 22 bayt

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

Bu, soldaki bir tamsayıyı kabul eden ve bir dize döndüren adsız bir monadik fonksiyon treni oluşturur.

Sayısal değerler kullanılarak dizelere dönüştürülür . Dizeler dizisi kullanılarak tek bir dizgiye birleştirilir .

Çevrimiçi deneyin

Thomas Kwa sayesinde 3 bayt kurtarıldı!


5

Javascript (ES6) 23 21 Bayt

Golf lanqs tarafından ezilecek basit bir fonksiyon:

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

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

2 byte tasarruf için ETHproductions özel teşekkür


NOICE! Şablon dizgilerini kısaltabilirsiniz, ancak bunu yapmanın hiçbir yolu düşünemiyorum
MayorMonty

İki bayt kaydedildi:_=>_+`spooky${_+2}me`
ETHproductions

Teşekkür ederim, ama şimdi düzeltme çok aptal görünüyor aptal hissediyorum. Bence bunu Javascript'te yapmanın en kısa yoludur, yanılıyor olabilirim (Umarım hatalıyımdır)
Genel Kullanıcı

5

05AB1E, 14 10 bayt

DÌs’ÿæªÿme

Çevrimiçi deneyin.

05AB1E’den bu yana rekabet etmemek bu mücadeleden daha yeni.

açıklama

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
Bu D9 bayt için kaldırılmış olarak çalışıyor gibi görünüyor
dzaima

4

PHP, 55 47 46 42 34 bayt

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

Sayıyı komut satırı girişi olarak kabul eder.

Kredi :)

4 byte tasarruf ettiğin için teşekkürler!

8 bayt kaydetmek için insertusernamehere teşekkürler!


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

Sen olabilir kurtarmak 4 bayt kaldırarak "s. Hatta could save daha 4 bayt bir komut satırı bağımsız değişkeni alarak ve bunun gibi işlev atın: <?=($a=$argv[1]).spooky.($a+2).me;.
insertusernamehere

4

Chaîne , 15 bayt

rekabet etmeyen, dil sonrası soru

{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

Örtük çıktı.


Çıktı `spookyme 4 2" (yeni satır ayrılmış)
Fabian Schmengler

@fschmengler Tercümanı güncellerken bir şeyleri mahvetmiş olmalıyım. Lütfen bekleyin.
Conor O'Brien,

@ fschmengler Tamam, hatalar giderildi. Şimdi çalışması gerekiyor.
Conor O'Brien 17


3

Simplex v.0.7 , 20 bayt

Simplex bugün kendini golf gibi hissetmiyor. > _ <

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

Hala Vitsy'yi yendin. oo
Addison Crump,

@VoteToClose Çok kötü hissetme. Son Simplex versiyonu ~ 25 + karakter olabilirdi. Her iki durumda da, 20 veya 21 bayt 17'ye yaklaşmaz; -;
Conor O'Brien,


1
@VoteToClose Ne bekliyordun? O bir mod XD
Conor O'Brien,

3
Biz eklemeniz gerekir bu meme listeye.
Addison Crump,

3

C, 58 bayt

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

atoi() gereksiz olabilir.


1. gccDeğerlendirme emrine bağlı olduğu için başarısız olur . 2. ile bir bayt kaydedin int**b.
ugoren

3

Mathematica, 45 27 bayt

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

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

Önemli gelişmeler için Martin Büttner'e teşekkür ederiz (ve sıcak karşılama).


2
PPCG'ye Hoşgeldiniz! Adsız işlevler iyi, bu yüzden ihtiyacınız yok g=ve bence Print[#,"spooky",#+2,"me"]&de çalışması gerekir. :)
Martin Ender

Ne hakkında Row@{#,spooky,#+2,me}&? Değişkenler tanımlanmadığında çıkış görsel olarak benzerdir.
2012rampamp1

3

Minkolang 0,10 , 49 bayt

Tamsayıları dizgilere (henüz!) Dönüştürmek için hiçbir yolum yok, bu yüzden bu çok daha uzun.

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

Burada dene.

açıklama

(dl%"0"+$rl:d)int'yi dizeye dönüştürme işi yapar. Bu, tek bir karakterle (benzeri Z) değiştirildiyse, çözümüm yalnızca 23 bayt olur .

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

ndgirdiden bir tamsayı alır ve onu kopyalar. 2+2 ekler ve 2gdaha sonra ilk girdiyi alır ve üst üste koyar. $O.tüm yığını tamsayı olarak verir ve durdurur.


Elbette sayıları sadece sayı olarak vermek daha kısa mı?
Sp3000

Sayı olarak çıktı almak, çıktıya otomatik olarak boşluk ekler. Bu yüzden "2 spooky4 me" olur.
El'endia Starman

3

Windows için Lua, 41 bayt

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

windows için Lua ile test

girişi io.read ile alır, sonra n değişkeninde saklar, sonra aynı satırda n değişkenini sonra "ürkütücü" sonra n + 2 sonunda "ben" yazar


1
Boşluk alanını kaldır ve bayttan tasarruf etn=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer - Boşluksuz 2.bir sayı olarak kabul edilir.
Egor Skriptunoff

p.lua: print(.....'spooky'.. ...+2 ..'me') Nasıl çalıştırılır: lua51.exe p.lua 2Boyut = 35 bayt.
Egor Skriptunoff

3

Rotor, 15 bayt

&"spooky"~2+"me

Dil mücadeleden sonra oluşturuldu. Çevrimiçi tercümanda çalışmaz (girdi değerlendirmesini kullanır).


Baraj oğlum. Dennis'i aştın. En sonunda. Yaşasın!
Addison Crump,

1
Rotor benim için öldü, lütfen onu diriltmeye çalışma.
bir

1
Rotor bile güzel iş! Hayatı ile ödüllendirmelisin.
Rɪᴋᴇʀ

3

Çerez , 16 bayt (yarışmaz)

Github sayfasına son değişiklikler olduğunu Not değil bu meydan okuma için yapılmış, Çerez gelişme hala.

wŕspooky[r+2]me"

Açıklama:

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 Neden yarışmacı olmayanlar eklediniz? Sadece soruyorum.

Dil, meydan okumanın yayınlanmasından 5 ay sonra oluşturuldu.
Mego

@Mego Bu sistem hakkında bilmiyordum. Beni aydınlatıcı için teşekkürler;)

Yardım etmekten memnun oldum. Bir gönderi geçerliyse, ancak kullanılan dil (ler) / özellik (ler), itirazın yayınlanmasından önce mevcut değildi (ana ya da Sandbox’ta), zorluk özellikle yeni dillerin / özelliklerin rekabet etmesine izin verir.
Mego

Sağ. Bu mantıklı.

3

Jöle, rakipsiz

13 bytes Bu cevap yarışmacı değil, çünkü zorluk Jelly'in yaratılmasından önce geldi.

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

QUARTATA YARDIMCI OLAMIYORUM

Çevrimiçi deneyin!

Nasıl çalışır

+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
Biri basitçe aşka değil ... quartata mı?
Arcturus

Quartata'yı aşacak gibi görünmüyorum, ama cevap rekabetsiz olduğu için biraz yardım verebilirim. +2ṭż“×¥X“ŀ`»
Outgolfer Erik,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.