Tüm Tabanınız Bize Ait (Sınırlı)


57

Giriş gerekli olmamalı ve çıkış " All your base are belong to us" okumalı .

Kısıtlamalar

  • Dış kaynak yok.

    Artı aşağıdakilerden en az iki tane:

  • Kodunuzda hiçbir durumda "a", "b", "t", "u" veya "y" kullanamazsınız (bunu yapabiliyorsanız golf puanınıza -10 bonus)

  • Kodunuzda hiçbir durumda "l", "o", "s", "e" veya "r" kullanamazsınız (bunu yapabiliyorsanız golf puanınıza -20 bonus)

  • Kodunuzda hiçbir durumda "n", "g", "0", "1" veya "2" kullanamazsınız (bunu yapabiliyorsanız golf puanınıza -30 bonus)

Örneğin, kodu 40 karakterle yapmayı ve kural 1 ve 2'yi kullanmayı başarırsanız, golf puanınız 40 - 10 - 20 = 10 karakterdir.

En küçük kod golf puanı kazanır ... İyi şanslar!


5
Bir bildirmek de çok fazla stringsonlarını her üç kısıtlamaları ve char, varve Writebunlardan her biri iki bölünürler. Geçerli cevaplar almak zor olacak, belki de Barinfuck.
El-E-Yemek

7
msgstr "giriş gerekli değil ". Bu, örneğin, print(input())(python) gibi bir şey yapabileceğim anlamına gelmiyor mu? Kullanıcının doğru dizgiyi girmesi gerekirdi, ancak bu yasak değil.
Justin

5
@Quincunx Kodun doğru çözümü göstereceği garanti edilmediğinden böyle bir çözümü kabul etmedim . Ayrıca, stdinmuhtemelen bir "dış kaynak" dır.
nitro2k01

2
@PranavHosangadi Bu soruya -6 puanla silinmiş bir cevap var. Çeşitli sorularda birkaç kez daha önce yapıldı ve kod-golf etiketinde açıkça reddedildi .
Gareth

1
Code-golf standart kurallarına göre, latin1 / unicode / name içindeki cevaplar, charmap utf-8'e dönüştürüldükten sonra bayt olarak derecelendirilir. Bu şekilde mi sayıyoruz yoksa farklı bir puanlama yöntemi seçtiniz mi? Mevcut lider daha sonra -40 yerine 0 olur.
Sylwester

Yanıtlar:


4

SOGL V0.12 , 15 - 60 = -45

šz█P'zUS½█│β3‘⁾

Burada dene!

šz█P'zUS½█│β3‘sıkıştırılmış dizidir all your base are belong to us, ama bu kesin dize bulunan sıkıştırılmış çünkü 0, bu 3 parçaya bölünmüş oluyor: all your base are, , belong to us(bir byte mal ama -30 bayt ikramiye verdi). İlk ve son dizeler SOGLs English sözlük ile sıkıştırılmış ve örtük olarak boşluklarla birleştirilmiştir. Kalan yerleşik basit bir cümle davasıdır.
SOGL'nin bu mücadeleyi yayınladığını ancak şimdi izin verildiğini unutmayın.


Sadece sormam gerek ... Nasıl ??? Burada akıllı bir sıkıştırma tekniği ile mi uğraşıyoruz? SOGL hakkında hiçbir şey bilmiyorum ...
WallyWest

45

GolfScript, -22 (38 karakter, -60 bonus)

"„¯¯c¼²¸µc¥¤¶¨c¤µ¨c¥¨¯²±ªc·²c¸¶"{67-}%

4
Bu nasıl çalışıyor?
Şapkalı Adam

37
@RyanCarlson Magic.
Howard

4
"..."Bir dize tanımlar ve blok {}%tüm karakterler üzerinde bir eşleme işlemi gerçekleştirir. Bloğun içinde ascii değeri istif üzerinde bulunur ve 67-her ascii değerinden 67 çıkarır.
Howard

4
Tamam, muhtemelen kullanılması gereken yanlış kelime, ama ne demek istediğimi biliyorsun. Üst simge 2'nin hala 2 olduğundan eminim, bu nedenle Kural 3 karşılanmadı.
Trent

3
@FizzBuzz Ne söylemeye çalıştığını biliyorum, ama asıl önemli olan 2 ve ²’nin farklı kod noktalarına sahip farklı glifler olmasıdır. Şüphe uyandıran anlamda, onların aynı sembol olduğu argümanını yapabilirsin, ama bence bu soruya göre çok daha soyut bir yorum.
Jordan Gray

36

Sclipting , −40

뀖롬긇땯덗긠눦굳뉒걡댦넠눦녬닶멧긇끯긇녳
  • = 20 karakter - 60 bonus
  • Sadece giriş boşsa çalışır, ki böyle olur; eğer değilse, önünde ekleyin , puanı −39 olarak değiştirin.
  • Girdiyi istediğim gibi kabul edebilirsem ( bu cevap göründüğü gibi), o zaman boş program bir çözüm ve puanım −60.

Eh, "input is not required"dediğim gibi, bu yüzden önünde丟atmak ve -39 ile skoru ancak büyük çaba değiştirebilir olur! Özellikle dili senin icat ettiğini düşünüyor dostum!
WallyWest

1
Korece olarak Korece hece kodunda görmek şaşırtıcı.
Matthew Roh

29

JavaScript - 140 bayt - 60 bonus = 80 puan

(x="Ǎľľ y̌ǒǔř b̌ǎšě ǎřě b̌ěľǒňǧ ťǒ ǔš")[x[3*9]+x[34]+"p"+x[4]+x[5*5]+"c"+x[34]]("̌","",x[6*7])

Firefox'ta çalıştırın.

Ne düşündüğünü biliyorum. Hayır, bunlar soruda listelenen karakterler değil. Bunlar bir caron veya háček karakterleridir (tesadüf listesinden rastgele seçilmiş). İşaretleri birleştirseler bile, iki ayrı karakter değildir.


Node.js REPL:String.fromCharCode(65,108,108,32,121,111,117,114,32,98,97,115,101,32,97,114,101,32,98,101,108,111,110,103,32,116,111,32,117,115);
nick indiessance,

28

APL (43 - 30 - 20 = -7)

⎕AV['⊥┤┤ ø┼&┐ `∣┘û ∣┐û `û┤┼─ù ´┼ &┘'⍳⍨⌽⎕AV]

Bu kural 2 ve 3'e uygundur.


Bunu yenmek zor olacak!
Paul Prestidge

1
bu sonuç verir mi yoksa yazdırır mı?
Aaron Davies

@AaronDavies: her ikisi de, sonuç otomatik olarak yazdırılır
marinus

@ marinus Bunu TryAPL.com'da denedim ve bir hata aldım .... belki AV'denINVALID TOKEN önceki başlangıç ​​ve kuyruk karakterinden ... Bunu test edebileceğim başka bir yer var mı?
WallyWest

@WallyWest: Dyalog APL'yi ( dyalog.com ) kullanın. Kayıtdışı sürümünü edinin, ücretsiz. TryAPL o kadar sınırlı ki neredeyse işe yaramaz.
marinus

28

Brainfuck, 267 - 60 = 207

++++++++[>++++++++<-]>+.<+++++++[>++++++<-]>+..>>++++++[<+++++>-]<++.<+++++++++
++++.----------.++++++.---.>.<<++++[>----<-]>.-.<+++[>++++++<-]>.--------------
.>.<----.<++++[>++++<-]>+.-------------.>.<---.+++.+++++++.+++.-.-------.>.<+++
++++++++++.-----.>.<++++++.--.

Acaba daha da azaltılabilir mi? :)
WallyWest

2
fbonetti Brainfuck'ın cevabını daha iyi yaptı.
El-E-Yemekler

2
Ve FIQ 4 gün sonra daha da iyi sonuç verdi
schnaader

22

HTML / CSS 70

<p style="transform:rotate(.5turn)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>

http://jsbin.com/EjekuvuF/1/

Baş aşağı tipte zeki olduğumu düşünmüştüm ancak daha sonra asıl HTML / CSS ile yardımcı kuralların hiçbirini yerine getiremediğimi fark ettim. Oh iyi.

GÜNCELLEME:

User Flame, daha tarayıcılar arası uyumlu bir çözüm önerdi:

<p style="transform:rotate(180deg)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>  

http://jsbin.com/EjekuvuF/6


Durumu kurtarmak için XML karakter referanslarını kullanabilirsiniz sanırım.
MvG

3
Yine de çözümün arkasındaki fikri sevdim.
Sumurai8

Ben de ona sahne vereceğim ... bir nedenden dolayı transform:rotate(.5turn)bir Sözdizimi hatasını
düzelttiği düşünülüyor

@WallyWest Tüm tarayıcılarda test yapmadım. Bahse girerim, resmi W3C sözdizimi yerine tarayıcıya özgü olabilir. (Yine de Chrome'da çalışır)
DA.

3
Ɐ yerine ∀ kullanmalısınız :)
Timwi

12

MATLAB, Tüm bonuslar: -20 (40-60) puanı

['' '¤ÏÏèÜÒØÕèÅÄÖÈèÄÕÈèÅÈÏÒÑÊè×ÒèØÖ'-99]

DÜZENLE:

Bunu yapmak için sistem gereksinimlerinin ne olduğundan emin değilim, pencerelerde test edildiğini unutmayın. Kopyalamayı zorlayanlar için, benzer bir kod şöyle üretilebilir:

char('All your base are belong to us' + 99)

Girdi olarak herhangi bir şey sormasına izin verilirse, daha az karakter içeren (ancak aynı zamanda bonus eksik) bir çözüm elbette mümkün olacaktır.

input('')

Lütfen sadece bir şey kullanarak nasıl çıktı alınacağını açıklayın input. İkinci cevap (afaik) doğru değil.
DJSpud

2
@Jhawins: MATLAB, noktalı virgülle bitmeyen her ifadenin sonucunu verir. input('')Çağrı dolayısıyla çıkış üretecek, bir noktalı virgül içinde sona ermez.
Ben Voigt

6
Eğer bu doğruysa, benim JS cevabım " prompt()"
DJSpud

Ve kabuk olurdu dd, ama belki de dış kaynak olarak sayılır. Tabii ki kullanıcı girişi de olur.
gerrit,

Bunu çalıştırmayı denedim ve aşağıdakileri aldım: _A ,, E9 /5 2E "! 3% E! 2% E" %, /. 'E 4/ E5`3 İlk cevabı anlayabiliyorum, fakat ikinci cevabın" gerekli olmadığını "söylediğim girdiyi gerektiriyor
WallyWest

10

k (-7 = 53 - 60)

(#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

sondaki yeni satırı içermez, bir ek karaktere eklenebilir:

(-#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

can sıkıcı, bu numara için çalışan sadece ofset ofset 154 ve 155

Düzenle:

APL çözümünün olduğundan şüphelendiğimden ( http://tryapl.com/ adresinde çalışmıyor , bu yüzden düzgün bir şekilde test edemiyorum ) dizeyi görüntülemek yeterliyse (yazdırmak yerine)

  "c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&("
"All your base are belong to us"

hangisi -12 = 48 - 60. Bunun yeterli olup olmadığı hakkında karar alabilir miyim?


Asla takip eden bir newline
sormadım

10

dc, 97 - 60 = 37 91 - 60 = 31 88 - 60 = 28 81 - 60 = 21

3C87596P4d^8/P7958389P7479394P6386533P7C89P749698CP644848CP459 8^699 7^3849736388974773333 86-++P

Geliştirilmiş sürüm (buradaki ana fikir, sorunlu basamak olmadan yararlı büyük bir sayı bulma şansını artırmak için giriş tabanını değiştirmektir):

IDi67793554D647F84C836645D6569F69Pi6385C77P9i35PDdi6^I9^+6D59CD83D664D34+P8CPFi98CCF5PCi97P

Üstat 7'de her şey tek bir sayı olabilir! Daha düşük tabanlar, doğal olarak daha az kompakt olmakla birlikte, burada sabitleme işlemlerinin olmaması bunu telafi etmektedir.

7i4398873968644388737548444897643735447698675366869556798538985674336396359936458859886P

Benim ilk çözüm kullanılan baz 10. Benim ikinci gerçekten tüm temel gibi hissediyorum Bu seferki tabanı 7 'de tabanın 9, 10, 12, 13 bir karışımını kullanılan ve 15. olan bana ait.

Sonuncusu, ciddiyetle: Base 13 ilk segmentte harika bir iş çıkarır, ardından geri kalan kısım için 7 baz alır.

Di67793554D647F84C836645D6569F69P7i798789699638355733695878558396339387963789536P

Yani başka bir deyişle, tüm üs 7 size ait, @ Wumpus?
WallyWest

10

Python REPL, 122 116 98 karakter - 30 bonus = 92 86 68 puan

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6fng \x74\x6f \x75\x73'

'All your base are belong to us'

Python 3.3'teki sıfırlardan ' \40' ile değiştirerek kurtulabilirdim \N{SP}, ancak ne yazık ki Nizin verilmiyor.

Düzenleme : esinlenerek bu cevap , ben değiştirerek daha da kısalttık \x40tarafından . Zaten kullanmak Dahası, 1değiştirilmesi \156yoluyla nve \x67tarafından ghiçbir ekstra ceza ödemeden sırasında başka 6 karakter bunu kısaltır.


1
Bunun geçerli bir giriş olup olmadığını merak ediyorum, çünkü yalnızca etkileşimli kabuğu kullanıyor. Bunu bir .pydosyaya koyar ve çalıştırırsanız, çıktı yoktur.
Daniel Hepper

1
Değişir ... Genel bir kural olmadığına inanıyorum. Bazı sorular etkileşimli moda izin verirken, diğerleri sormaz.
Bakuriu


1
Bu R'de de işe yarıyor
Zach

1
@AaronHall Ve düzenlememden sonra 68'i benim getirdim!
gerrit

8

Brainfuck, 205 203 - 60 = 145 143 bayt

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]>+.>>----..<.>>>-------.<<+++.>>----.---.<<<.>>++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.<---.>>---.-.<<-----.<.>>>++++++.-----.<<<.>>>++++++.--.

Okunabilir sürüm:

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]
64 32 112 96 128

>+.>>----..<.                     All                 65 108 108  32
>>>-------.<<+++.>>----.---.<<<.  your           121 111 117 114  32
>>++.-.>+.<++++.<<.               base            98  97 115 101  32
>>----.>-.<++++.<<.               are                 97 114 101  32
>>---.+++.<---.>>---.-.<<-----.<. belong  98 101 108 111 110 103  32
>>>++++++.-----.<<<.              to                     116 111  32
>>>++++++.--.                     us                     117 115


Sonunda bir Brainfuck çözümü beklemekteydim ... Sonunda iyi iş!
WallyWest

7

Befunge 98: 122 - 60 = 62

5f8+*:53-+:' \6-:5+' 91+:*3+::7+\8+:3-:7-:3-:' \3+::3-4+',' -+\4-:' \:4+\6+c+:f3+-:4+3-' '&3*:3+:6-:f+5-:' \d-:' '!+ff+k,@

Ascii değerlerini hesaplar, sonra bunları yazdırır. Hala daha kısa yollar olup olmadığını görmek için sayıları oluşturan diğer yöntemleri denemeye ihtiyacım var.


Ne zaman 2 bayt koyacağınızı merak ediyordum ... İyi işti!
WallyWest

7

Python, 195-40 = 155

x,w,y,z,v=4*8,55,56,57,58;exec(("%c"*38)%(y+y,z+z,49+y,w+w,v+v,39-7,34,65,54+54,54+54,x,v+63,48+63,48+69,z+z,x,98,97,59+y,45+y,x,97,z+z,45+y,x,98,45+y,54+54,w+y,w+w,45+v,x,v+v,w+y,x,v+59,z+v,34))

6

Ruby, 121 - 50 = 71

Biraz kaba kuvvet, ama sevimli yöntemlerin çoğu göz ardı edildi:

$><<[65,c=36*3,c,d=8*4,363/3,f=c+3,c+9,c+6,d,x=98,97,j=c+7,k=3+x,d,97,c+6,k,d,x,k,c,f,j-5,5+x,d,c+8,f,d,c+9,j].pack('C*')

A girişi nedeniyle 1. kuralı sonları pack, diğer ikisinin de tamam olması gerekir.


Sonucu yazdırmak yerine sadece iade edersek 6 karakter kaydedebilirim, diğer cevaplara baktıktan sonra net değildim.
Paul Prestidge

1
Son derece uzun, ama artık “a” yok: pastebin.com/wnsvcAMh
manatwork

@ manatwork Bayıldım! Her nasılsa, <<cevabımı kullanmama rağmen bunu hiç düşünmedim .
Paul Prestidge

Yani @ manatwork'ün kullandığı 154 karakter çözümünü kullanıyorsunuz ve size 94 puan veren 60 puanlık indirimi talep ediyorsunuz ya da Kural 1 olmayan versiyona sadık kalıyorsunuz ve 71 ile devam ediyorsunuz ... Hangisini kullanacağımı biliyorum :)
WallyWest

6

{ba, z} sh, 67 - 40 72 - 60 61 - 40 = 21

$'\x74r' K-~\#-\; _@-~\^-j<<<'Mxx ){%~ 3m#q m~q 3qx{z8 ${ %#'

Kahretsin, rfarketmedim ki içeride bir tane vardı, yani 20 bonus geçerli değil!


1
Kullanışlı olduğum zsh ve bash sürümlerinde, $'\x74\x72'doğrudan bir komut adı olarak kullanılabilir, bunun için 8 karakter kaydedersiniz $(m4<<<). Senin için bu şekilde çalışmıyor mu?

Ve ona tekrar baktıktan sonra ... \x72yedek olarak kullanmak r, 30 puan bonusunu kaybetme pahasına 20 puan bonus kazandırır (kullanıcı için 2)

@ WumpusQ.Wumbley oh, iki hesapta da haklısın. 2Orada kullanılanları düşünmedim , görmeme izin ver, ondan kurtulmanın bir yolunu bulabilir miyim ve bonusları kaybetmemek için.
FireFly

Kutsal sh # t, bu ustaca! Bu bir Ters ROT12 ASCII şifresi gibi görünüyor ... (doğru muyum?) Güzelce yapılır!
WallyWest

Güzel cevap Fakat trharici bir kaynak olarak sayılıyor mu?
Dijital Travma,

5

C, 75 bayt - 60 = 15

Skoru 50'den 33'e, 19'dan 15'e düşürdüğü için @gastropner'a teşekkürler!

*q,i;f(p){(*(q=p)="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9J"[i++]^74)?i=!f(++p):i;}

Char dizisinin adresini girdi olarak alır ve diziyi diziye yazar.

Çevrimiçi deneyin!

İle ara:

int main()
{
    char s[128];
    f(s);
    puts(s);
}

Çıktı:

Eski versiyon (90 bayt - 40 = 50):

*q,i,j;f(p){for(i=3-3;j="Epp$}s v$fewi$evi$fipsrk$xs$ w"[i++];*q=j!=35-3?j-4:353/3)q=p++;}

1
Bunu dikkate alarak, XOR'un güçlerini ve özyinelemeyi kullanarak, 93 - 60 = 33 bayta erişebilirsiniz:*q,i,j;x(p){if(j="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9"[i++])*(q=p)=j^74,x(++p);}f(p){i=3-3;x(p);}
gastropner

@gastropner Teşekkürler!
Steadybox

i=i<30Kapalı 2 bayt için gidebiliriz .
gastropner

@gastropner Kullanamıyor 0.
Steadybox

Ah, evet, elbette!
gastropner

4

JavaScript

(306 karakter - 60 bonus = 246) (206 karakter - 50 bonus = 156)

(123 karakter = 173 karakter - 50 bonus)

Nooby tür, muhtemelen daha fazla alabilirsiniz ... Bir şey doldurduysam bana bildirin, "Tüm tabanınız bize ait" uyarısı. Bu aynı zamanda sadece ASCII'dir.

(c=(''+!'')[4-3],x=([][3]+c)[6])[a='c\x6F'+x+'\x73t'+c+'uct\x6F'+c][a]('a\x6C\x65'+c+'t("A\x6C\x6C y\x6Fu'+c+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+x+'\x67 t\x6F u\x73")')()

Konsolun kendisini çıktı olarak sayarsanız, bu da sayılır (57 ile bonus):

'A\x6C\x6C y\x6Fu'+(c=(''+!'')[4-3])+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+([][3]+c)[6]+'\x67 t\x6F u\x73'

Harika bir yaklaşım, birkaç harf değişikliği de Rule-1 bonusunu da size verebilirdi ancak ... İyi iş çıkardınız.
WallyWest

@WallyWest: Teşekkürler! JavaScript'teki sorun, diğer kuralları çiğnemeden veya çok fazla karakter kullanmadan "A" almanın oldukça zor olmasıdır - yalnızca 10 karakterden fazla sürer.
Qantas 94 Heavy

Doğru, bonuslara karşı ek mektupları fazla kilo vermek zorundasın ... Yine de güzel iş!
WallyWest

x=(c.t+c)[6]biraz daha kısa
değil

Ayrıca, evalkesmek daha kolay olabilir
Charles

4

Brainfuck, (227 - 60 = 167)

+++++ +++++[>+++>++++++>+++++++++>++++++++++<<<<-]>>+++++.>>++++++++..<<<++.>>>+++++++++++++.----------.++++++.---.<<<.>>++++++++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.>------.+++.-.<++.<<.>>>++++++.-----.<<<.>>>++++++.--.

Başlangıçtaki boşluğa +++++ +++++ihtiyaç olduğunu sanmıyorum. 226 bayt olabilir.
FinW

3

PHP (35 - 60 = -25 bayt)

HOW LOW CAN YOU GET ?[1] [2]

$ xxd yourbase.php 
0000000: 3c3f 3d7e be93 93df 8690 8a8d df9d 9e8c  <?=~............
0000010: 9adf 9e8d 9adf 9d9a 9390 9198 df8b 90df  ................
0000020: 8a8c 3b                                  ..;

[1] Bu program kullanılarak çözülebilir xxd -r.
[2] Evet, ağır çözüm burada yeniden. Sanırım bu ... bu şekilde çözdüğüm üçüncü problem. Belki başka bir şeye geçmeliyim, ama bu çoğu karakteri kullanmanızı yasaklayan problemler için harika değil.


Anlamıyorum, burada ne yapmaya çalışıyorsun?
WallyWest

@WallyWest Dizeyi bit tersine çevirdi; PHP'nin sabit bir isim olarak yorumlamaya çalıştığı ve dizgede böyle bir sabit yorumlama bulamayacağı için 31 genişletilmiş ASCII karakteri ile sonuçlandı. Bu dize ile geri olumsuzlanır ~.
Titus,

3

Bash, 52 - 10 - 30 = 12

Aşağıdakiler, (hala oldukça yaygın) bir ISO-8859-1 ortamında gerçekleştirilmelidir:

$'\x74r' À-þ  @-~<<<'Áìì ùïõò âáóå áòå âåìïîç ôï õó'

Bu tr, karakterleri uygun bir şekilde çeviren çağrılar . r2 kuralını ve ihlal kuralını kullanmak zorundaydım veya kaçış ve 3 kuralını ihlal eden bir rakam kullanmak zorunda kaldım .


1
Evet o yaptı :) Herhangi bir durumda "a", "b", "t", "u" veya "y" kullanamazsınız. Ayrıca koşullardan en az iki
tanesine

@cowls: Açıkça anladığın için teşekkürler, bu noktayı tamamen kaçırdım. Buna uymak için cevabımı yeniden yazdım.
MvG

@ MVG harika yeniden çalışma ... Aferin!
WallyWest

Does trharici kaynak teşkil?
Dijital Travma

@DigitalTrauma: Standart bir kütüphane gibi, diyebilirim, ancak bu kesinlikle yorumlamaya tabi. Ancak POSIX standardında belirtilmiştir , bu nedenle herhangi bir POSIX sisteminin buna sahip olması gerektiğini düşünüyorum, bu yüzden sistemin bir parçası.
MvG

3

Saf Bash (harici kaynak yok), 141 karakter - 50 bonus = 91

Z = ({k..v})
f = $ '\ X65'
h = $ '\ x6c'
i = $ '\ x6f'
J = $ {Z [7]}
k = $ '\ X73'
m = $ '\ x75'
$ f $ '\ x63'h $ i $ h $ hy $ i $ m $ j ba $ k $ fa $ j $ fb $ f $ h $ i $ {Z [3]} $' \ x67 't $ iu $ k

Daha iyi bir genel puan almak için kasıtlı olarak 10 puanlık bonusu düşürmek.

Bu bash, denedim herhangi bir sürüm 3.00.15 veya daha sonra çalışır .

O nasıl çalışır

Burada roket bilimi yoktur - sadece bashbir formdan diğerine genişlemeler:

  • Gerekli karakteri elde etmek için basit altıgen genişletme. Bu onaltılık gösterimi içermeyen karakterler için çalışır [012]. örneğin $'\x65'bize verire
  • Diğer karakterler için, bir dizi başlangıcına ( Z=({k..v})) küme ayracı genişletmesini kullanarak bir bash dizi karakter dizisi üretiyoruz . Parantez genişlemesinin başlangıcı dikkatli bir şekilde seçilmiştir, böylece ihtiyaç duyduğumuz karakterlerin dizinleri içermez [012]. örneğin ${Z[7]}bize veriyor r.
  • bashkomutlarının çoklu dizgilerin içeriğinden oluşturulmasına izin verecek kadar esnektir. Böylece $f$'\x63'h$igenişler echo.
  • Yalnızca bir kez gereken karakterler için, genişletme yankı komut dizesine satır içi eklenir.
  • İki veya daha fazla gereken karakterler için, onları değişkenlere genişletmek daha etkilidir, ardından değişkenlere başvurur.

Tam bonusla önceki cevap, ancak daha da kötü toplam puan:

Saf Bash (harici kaynak yok), 193 karakter - 60 bonus = 133

Bunun kazanmayacağını biliyorum, ancak bashtüm gereklilikleri yerine getirirken bunun mümkün olduğunu kendime kanıtlamak istedim :

Z = ({3..8) {C..z)
C = $ {Z [36]}
d = $ {Z [37]}
f = $ '\ X65'
h = $ '\ x6c'
i = $ '\ x6f'
J = $ {Z [53]}
k = $ '\ X73'
m = $ '\ x75'
$ f $ '\ x63'h $ i $ {c ^} $ h $ h $' \ x79 '$ i $ m $ j $ d $ c $ k $ f $ c $ j $ f $ d $ f $ h $ i $ {Z [49]} $ '\ x67' $ '\ x74' $ i $ m $ k

Bu bash, ${c^}parametre genişletme için oldukça yeni bir sürüm gerektirir . 4.2.25 gayet iyi, ancak 3.2.48 devamsız.


Şapkamı sana çıkartıyorum ... Sadece idam ettim ... iyi iş ... Çok iyi iş.
WallyWest

@WallyWest - Sadece daha kısa bir versiyonda düzenleme yaptım.
Dijital Travma,

3

Postscript, 364 - 40 = 324

loserTabii ki olmadan yapamam . :)

/${cvx exec}def
/+{<3C7E4F6F597E3E>$ $}def
/*{<~P&(~>$}def
/-{( )<3C7E4F754E7E3E>$ $ 3 4<~P#;~>$ 4 3<~P)#3FP'-~>$}def
/_{36(      )<~OoP~><3C7E4F754E7E3E>$ $ 4 3<~P,S~>$ 48<~P'?~>$
${96 3<~P#;~>$ + -}<~P">~>$}def
/.{_ 96 3<~P#;~>$ -}def
65 - 777 .
895 353 + _ 774 333 + .
74933 333 + 7 * 3 + 333 + .
9593 4353 + .
689653949 335 + .
735 333 + .
775 333 + _ 5 5 + -

Bu, metni base-36 dizeleri olarak kodlamakla başlar:

%-=Encoding strings as base-36 numbers=-
%All your base are belong to us
% handle uppercase A separately
%36#ll = %777
%36#your = %1618515
%36#yo = 36#ur = 36#base = 36#are = 36#belong = 36#to = 36#us =
%1248 1107 527198 13946 689654284 1068 1108

Ve sonra 1'leri ve 0'ları ve 2'leri aritmetik olarak çıkarmak. Daha sonra dizeler ile yeniden oluşturulabilir 36 <string-buf> cvrs, ancak bu büyük harf verir, bu nedenle bunları küçük harf yapmak için yinelemeli ve 0x20 eklemeliyiz.

Operatörler cvx exec, çeşitli kodlamalarda ikili kodlanmış operatör belirteçlerinin string parçalarını çalıştırmamıza izin veriyor. En basit olan bir operatörü hex olarak kodlamak <92??>ama içinde 2 var! Yani "birinci seviye" kodlaması ascii85'tir. Sonra hala yasak karakterler içeren herhangi bir karakter dizisi fazladan hex -> ascii85 -> hex -> ascii85 seviyelerinden geçti.


2

Brainfuck, 306 - 60 = 246

----[---->+<]>++.[--->+<]>+..[++>---<]>--.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.[--->+<]>++.-.--[--->+<]>--.++++[->+++<]>.--[--->+<]>-.[--->+<]>+.--[--->+<]>---.-------------.--[--->+<]>-.[--->+<]>++.+++.+++++++.+++.-.-------.-[--->+<]>--.---[->++++<]>.-----.[--->+<]>-----.---[->++++<]>+.--.

Elbette bu bir şekilde azaltılabilir mi?
WallyWest

@WallyWest Sebepsiz yere böyle bir programı% 5 azaltmak için zamanım yok: P, iyileştirmeler yapmaktan çekinmeyin!
Timtech

:) burada ihtiyaç yok yükümlülük
WallyWest

@WallyWest Yine de kısaltmak konusunda haklısın. Bazı önemli iyileştirmeler kullanabilir.
Timtech

2

PHP, 186 - 10 - 30 = 146

Biraz yaratıcı olmak zorundaydım;)

 <?=chr(65).'ll '.chr(88+33).'o'.chr(39*3).'r '.chr(98).chr(97).'s'.chr(68+33).' '.chr(97).chr(38*3).chr(68+33).' '.chr(98).'elo'.chr(77+33).chr(69+34).' '.chr(83+33).'o '.chr(39*3).'s'?>

Hala biraz golf oynayabilir ve cevap fikrini tutabilirsiniz: yankı parantez gerektirmez (1), <?=yankı yerine kullanabilirsiniz (4), tekrarlanan harfleri değişkenlere kaydedebilirsiniz ('l', ''). 54*2yerine kullanmak54+54
Einacio

1
Sabit. Sadece bazılarını çarparak yapabilirdim. Yapamam 54*2çünkü içinde bir 2olduğu için sadece 3 veya daha yüksek bir etkiye sahip olanlarla yapabilirim. Ondalık kullanırsam, daha az karakter olmaz.
ub3rst4r

50 bayt alarak birkaç golf ipucu . Birçoğu (23 + 9 bayt): Kalan chr(68+33)ve chr(38*3)değişmez eve ile değiştirebilirsiniz r.
Titus

1

Python, 181 - 40 = 141

[Sürüm 2.7.2 YMMV kullanıyorum - yerleşik, filepython 3.X gitti]

f=file.__doc__;c=5-3;l=f[c];s=' ';e=f[3];h=f[6+7];i=f[c*87];j=3**3;f[j*c*5]+l+l+s+f[-57]+h+f[j-7]+f[j-3]+s+f[j-8]+f[6]+i+e+s+f[6]+f[j-3]+e+s+f[j-8]+e+l+h+f[5]+f[j]+s+f[45]+h+s+f[j-7]+i

1

Python (104 - 30 = 74)

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'
'All your base are belong to us'

Ve puan:

>>> len(r"'\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'")-30
74

Güzel, ama skoru belirlemek için aynı şeyi yapmanıza gerek yoktu ...;)
WallyWest

1

Kabakulak, 150 - 60 = 90.40 = 110

S J=" ",Z=36*3,C=37*3,D=38*3,Q=39*3,I=35*3-4 W *65,*Z,*Z,J,*484/4,*C,*Q,*D,J,*98,*97,*C+4,*I,J,*97,*D,*I,J,*98,*I,*Z,*C,*D-4,*Z-5,J,*C+5,*C,J,*Q,*C+4

Kod bonuslarından birini alarak daha kısa sürede (genel olarak) yapılıp yapılmadığından emin değilim - hedefim biraz kısaydı ve -60’da biraz daha fazlaydı ... Kullanmama zorluğunu sevdim kısıtlı karakterlerden herhangi biri.

Ve ... Ben goofed - başlangıç ​​'S' komutunu kaçırdım. : - /

Neyse, işte bir "kural yok" sürümü - değişkenleri genişletmek.

W *65,*36*3,*36*3," ",*484/4,*37*3,*39*3,*38*3," ",*98,*97,*37*3+4,*35*3-4," ",*97,*38*3,*35*3-4," ",*98,*35*3-4,*36*3,*37*3,*38*3-4,*36*3-5," ",*37*3+5,*37*3," ",*39*3,*37*3+4

Bu da ona 177-60 = 117 puan veriyor. Bu yüzden merkez kurallarını çiğnemek hala daha düşük bir genel puan verdi.


İlginç cevap ... Bu kodu uygulamak için erişebileceğim çevrimiçi bir emülatör var mı?
WallyWest

1
Eğer bir istiyorsanız Ahududu Pi çalışacağını bile sürümleri var - Bildiğim kadarıyla, ama hemen her platformu üzerinde çalışan Kabakulak için versiyonları vardır çok küçük Kabakulak makinesi ... :-)
zmerch

1

Perl 5, 99 - 50 = 49

Gerekli dizgeyi döndüren bir alt yordam:

{A.($c=h|d)."$c y".($f=f|k).u.($k=p|b)." ba".($j=c|p).($d=d|a)." a$k$d b$d$c$f".(jf|fc)." t$f u$j"}

Böylece yazdırılmış bakın:

perl -e'print sub{...}->().$/'

1

BF-RLE , 146 - 30 = 116

+5[>+5<-]>+.<+4[>+3<-]>+..>>+3[<+2>-]<++.<+A.-7.+3.-0.>.<<+1[>-1<-]>.-.<+0[>+3<-]>.-B.>.<-1.<+1[>+1<-]>+.-A.>.<-0.+0.+4.+0.-.-4.>.<+A.-2.>.<+3.--.

Bu önemli ölçüde kısaltılabilir
Timtech
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.