Semua Basis Anda Adalah Milik Kami (Terbatas)


57

Input tidak diperlukan, dan output harus membaca " All your base are belong to us".

Batasan

  • Tidak ada sumber daya eksternal.

    Ditambah minimal dua hal berikut:

  • Anda tidak dapat menggunakan "a", "b", "t", "u", atau "y" dalam hal apa pun dalam kode Anda (bonus -10 untuk skor golf Anda jika Anda bisa melakukan ini)

  • Anda tidak dapat menggunakan "l", "o", "s", "e", atau "r" dalam hal apa pun dalam kode Anda (bonus -20 untuk skor golf Anda jika Anda bisa melakukan ini)

  • Anda tidak dapat menggunakan "n", "g", "0", "1", atau "2" dalam hal apa pun dalam kode Anda (bonus -30 untuk skor golf Anda jika Anda bisa melakukan ini)

Jadi misalnya, jika Anda berhasil menyelesaikan kode dengan 40 karakter dan menggunakan aturan 1 dan 2, skor golf Anda adalah 40 - 10 - 20 = 10 karakter.

Skor golf kode terkecil menang ... Semoga Sukses!


5
Sebanyak mendeklarasikan stringistirahat ketiga pembatasan, dan char, vardan Writeistirahat dua masing-masing. Ini akan sulit untuk mendapatkan jawaban yang valid, kecuali Barinfuck.
Hand-E-Food

7
"tidak diperlukan input ". Bukankah itu berarti saya bisa, misalnya, melakukan sesuatu seperti print(input())(python)? Pengguna akan diminta untuk memasukkan string yang benar, tetapi itu tidak dilarang.
Justin

5
@ Quincunx Saya tidak akan menerima solusi seperti itu, karena kode tidak dijamin untuk menghasilkan solusi yang benar. Juga, stdinbisa dibilang "sumber eksternal".
nitro2k01

2
@PranavHosangadi Ada jawaban yang dihapus untuk pertanyaan ini dengan skor -6 yang pada dasarnya sama dengan itu. Ini telah dilakukan sebelumnya beberapa kali dalam berbagai pertanyaan dan secara eksplisit tidak diizinkan dalam tag kode-golf .
Gareth

1
Menurut aturan standar kode-golf, jawaban dalam bahasa latin1 / unicode / name you charmap dinilai dalam byte setelah konversi ke utf-8. Apakah kita menghitung seperti itu atau apakah Anda memilih metode skor yang berbeda? Pemimpin saat ini akan berada di 0 bukannya -40.
Sylwester

Jawaban:


4

SOGL V0.12 , 15 - 60 = -45

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

Coba Di Sini!

šz█P'zUS½█│β3‘adalah string kompresi all your base are belong to us, tetapi karena string yang tepat terkompresi yang terdapat 0, itu dibagi menjadi 3 bagian: all your base are, , belong to us(yang biaya satu byte tetapi memberi bonus -30 byte). String pertama dan terakhir dikompres dengan kamus bahasa Inggris SOGL, dan secara implisit digabung dengan spasi. Sisanya adalah kasus kalimat sederhana bawaan.
Perhatikan bahwa SOGL mengeposkan tantangan ini, tetapi itu dibolehkan sekarang.


Saya hanya perlu bertanya ... Bagaimana ??? Apakah kita berurusan dengan beberapa teknik kompresi pintar di sini? Saya tidak tahu apa-apa tentang SOGL ...
WallyWest

45

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

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

4
Bagaimana cara kerjanya?
The Guy with The Hat

37
@RyanCarlson Magic.
Howard

4
"..."mendefinisikan string dan blok {}%melakukan operasi pemetaan atas semua karakter. Di dalam blok nilai ascii tersedia di tumpukan dan 67-kurangi 67 dari setiap nilai ascii.
Howard

4
OK, case mungkin kata yang salah untuk digunakan, tetapi Anda tahu apa yang saya maksud. Saya cukup yakin superscript 2 masih 2, jadi Aturan 3 belum terpenuhi.
Trent

3
@ FizzBuzz Saya tahu apa yang ingin Anda katakan, tapi saya pikir yang penting adalah bahwa 2 dan ² adalah mesin terbang yang berbeda dengan codepoint yang berbeda. Anda dapat membuat argumen bahwa, dalam arti denotasional, mereka adalah simbol yang sama, tetapi saya pikir itu adalah interpretasi yang jauh lebih abstrak daripada manfaat pertanyaan.
Jordan Grey

36

Guntingan , −40

뀖롬긇땯덗긠눦굳뉒걡댦넠눦녬닶멧긇끯긇녳
  • = 20 karakter - 60 bonus
  • Hanya berfungsi jika inputnya kosong, yang saya anggap sebagai kasus; jika tidak, tambahkan di depan, ubah skor menjadi .39.
  • Jika saya dapat menganggap input sebagai yang saya inginkan (seperti jawaban ini tampaknya), maka program kosong adalah solusi dan skor saya adalah −60.

Yah, "input is not required"seperti yang saya katakan, jadi saya akan melempar 丟 di depan dan mengubah skor menjadi -39, tapi usaha yang bagus! Terutama mengingat Anda menemukan bahasa, Bung!
WallyWest

1
Sebagai orang Korea melihat suku kata Korea dalam kode luar biasa.
Matius Roh

29

JavaScript - 140 byte - 60 bonus = 80 poin

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

Jalankan di Firefox.

Saya tahu apa yang Anda pikirkan. Tidak, itu bukan karakter yang tercantum dalam pertanyaan. Itu adalah karakter dengan caron, atau háček (dipilih secara acak dari daftar diakritik). Meskipun mereka menggabungkan tanda, mereka bukan dua karakter yang terpisah.


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]

Ini memenuhi aturan 2 dan 3.


Ini akan sulit dikalahkan!
Paul Prestidge

1
apakah ini mengembalikan hasilnya atau mencetaknya?
Aaron Davies

@ AaronDavies: keduanya, hasilnya secara otomatis dicetak
marinus

@marinus Saya mencoba ini di TryAPL.com dan mendapat INVALID TOKENkesalahan .... mungkin dari karakter awal dan tailing sebelum AV ... Apakah ada tempat lain yang bisa saya uji ini ...?
WallyWest

@WallyWest: gunakan Dyalog APL ( dyalog.com ). Dapatkan versi tidak terdaftar, gratis. TryAPL sangat terbatas sehingga hampir tidak berguna.
marinus

28

Brainfuck, 267 - 60 = 207

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

Bisakah itu dikurangi lebih jauh, saya bertanya-tanya? :)
WallyWest

2
fbonetti lebih baik dalam jawaban Brainfuck-nya.
Hand-E-Food

2
Dan FIQ bahkan lebih baik 4 hari kemudian
schnaader

22

HTML / CSS 70

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

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

Saya pikir saya pintar dengan tipe terbalik tetapi kemudian menyadari bahwa saya tidak bisa memenuhi aturan tambahan dengan HTML / CSS yang sebenarnya. Baiklah.

MEMPERBARUI:

User Flame menyarankan solusi yang lebih sesuai dengan lintas-browser:

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

http://jsbin.com/EjekuvuF/6


Saya kira Anda dapat menggunakan referensi karakter XML untuk menyelamatkan situasi.
MvG

3
Saya suka ide di balik solusinya.
Sumurai8

Saya akan memberikan alat peraga juga ... berpikir untuk beberapa alasan transform:rotate(.5turn)menyelesaikan kesalahan Sintaks ... Saya suka imajinasi dimasukkan ke dalam ini ...
WallyWest

@WallyWest saya tidak menguji di semua browser. Saya yakin itu mungkin spesifik browser daripada sintaks W3C resmi. (Namun, berfungsi di Chrome)
DA.

3
Anda harus menggunakan ∀ alih-alih ɐ :)
Timwi

12

MATLAB, Semua bonus: Skor -20 (40-60)

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

SUNTING:

Perhatikan bahwa saya tidak yakin apa persyaratan sistem untuk menjalankan ini, diuji pada windows. Bagi mereka yang kesulitan menyalin, kode serupa dapat dibuat seperti:

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

Jika diizinkan untuk meminta sesuatu sebagai masukan, solusi dengan karakter lebih sedikit (tetapi juga kehilangan bonus) tentu saja mungkin.

input('')

Tolong jelaskan bagaimana Anda berencana untuk menghasilkan sesuatu hanya menggunakan input. Jawaban kedua adalah (afaik) tidak benar.
DJSpud

2
@Jhawins: MATLAB menampilkan hasil dari setiap ekspresi yang tidak berakhir dengan titik koma. The input('')panggilan tidak berakhir di titik koma, maka akan menghasilkan output.
Ben Voigt

6
Jika itu benar, maka jawaban JS saya adalah " prompt()"
DJSpud

Dan shell mungkin dd, tapi mungkin itu dianggap sebagai sumber daya eksternal. Begitu juga input pengguna, tentu saja.
gerrit

Saya mencoba menjalankan ini dan mendapatkan yang berikut: _A ,, E9 /5 2E "! 3% E! 2% E" %, /. 'E 4/ E5`3 Saya dapat memahami jawaban pertama, tetapi jawaban kedua membutuhkan input, yang saya katakan tidak" diperlukan "
WallyWest

10

k (-7 = 53 - 60)

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

tidak termasuk mengikuti baris baru, dapat ditambahkan dengan biaya satu karakter tambahan:

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

mengganggu, satu-satunya penyeimbang yang bekerja untuk trik ini adalah 154 dan 155

sunting:

jika cukup untuk menampilkan string (daripada mencetaknya), karena saya menduga solusi APL tidak (tidak berfungsi di http://tryapl.com/ , jadi saya tidak dapat mengujinya dengan benar), itu

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

yang -12 = 48 - 60. bisakah saya mendapatkan putusan tentang apakah ini cukup?


Saya tidak pernah meminta baris baru ... :)
WallyWest

10

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

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

Versi yang ditingkatkan (ide utama di sini adalah memvariasikan basis input, untuk meningkatkan peluang menemukan angka besar yang berguna tanpa angka yang bermasalah):

IDi67793554D647F84C836645D6569F69Pi6385C77P9i35PDdi6^I9^+6D59CD83D664D34+P8CPFi98CCF5PCi97P

Di base 7, semuanya bisa menjadi satu nomor! Basis yang lebih rendah secara alami kurang kompak, tetapi kurangnya operasi perbaikan di sini menebusnya.

7i4398873968644388737548444897643735447698675366869556798538985674336396359936458859886P

Solusi pertama saya dasar yang digunakan 10. saya kedua digunakan campuran dasar 9, 10, 12, 13, dan 15. Ini adalah dalam basis 7. Saya benar-benar merasa seperti semua dasar yang milik saya.

Terakhir, serius: Basis 13 melakukan pekerjaan yang baik pada segmen pertama, kemudian basis 7 untuk sisanya.

Di67793554D647F84C836645D6569F69P7i798789699638355733695878558396339387963789536P

Jadi dengan kata lain, semua markas 7 Anda adalah milik Anda, @Wumpus?
WallyWest

10

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

>>> '\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'

Saya bisa menghilangkan nol di Python 3.3 dengan mengganti ' \40' dengan \N{SP}, tapi sayangnya, Nitu tidak diizinkan.

Sunting : Terinspirasi oleh jawaban ini , saya telah mempersingkat lebih lanjut dengan menggantinya \x40dengan . Selain itu, karena saya sudah menggunakan 1, menggantikan \156oleh ndan \x67oleh gmemendek dengan yang lain 6 karakter sementara menimbulkan tidak ada hukuman tambahan.


1
Saya ingin tahu apakah ini entri yang valid, karena hanya berfungsi dengan shell interaktif. Jika Anda meletakkan ini dalam .pyfile dan menjalankannya, tidak ada output.
Daniel Hepper

1
Itu tergantung ... Saya percaya tidak ada aturan umum. Beberapa pertanyaan memungkinkan mode interaktif, yang lain tidak.
Bakuriu


1
Ini bekerja di R juga
Zach

1
@ AaronHall Dan setelah edit saya, saya membawa milik saya ke 68!
gerrit

8

Brainfuck, 205 203 - 60 = 145 143 byte

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

Versi yang dapat dibaca:

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]
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


Saya agak setengah berharap solusi Brainfuck akhirnya ... Kerja bagus!
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,@

Menghitung nilai ascii, lalu mencetaknya. Saya masih perlu mencoba metode lain untuk membentuk angka untuk melihat apakah ada cara yang lebih pendek.


Saya ingin tahu kapan Anda akan memasukkan 2 byte Anda di ... Kerja bagus!
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

Sedikit kekerasan, tetapi sebagian besar metode lucu dikesampingkan:

$><<[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*')

Melanggar aturan # 1 karena A di pack, dua lainnya harus OK.


Saya dapat menyimpan 6 karakter jika kami hanya mengembalikan hasilnya daripada mencetaknya, saya tidak jelas setelah melihat jawaban yang lain.
Paul Prestidge

1
Sangat panjang, tetapi tidak lebih “a”: pastebin.com/wnsvcAMh
manatwork

@manatwork Saya menyukainya! Entah bagaimana saya tidak pernah memikirkan hal itu, meskipun saya menggunakan <<jawaban saya.
Paul Prestidge

Jadi Anda baik menggunakan solusi 154 karakter @manatwork telah menggunakan dan mengklaim diskon 60 poin yang memberi Anda 94, atau tetap dengan versi non-Rule 1 dan pergi dengan 71 ... Saya tahu mana yang akan saya gunakan :)
WallyWest

6

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

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

Sialan, ternyata saya punya rdi sana yang saya tidak perhatikan, jadi bonus 20 tidak berlaku!


1
Dalam versi zsh dan bash yang saya miliki berguna, $'\x74\x72'dapat digunakan langsung sebagai nama perintah, menghemat 8 karakter untuk $(m4<<<). Tidakkah itu bekerja seperti itu untuk Anda?

Dan setelah melihatnya lagi ... menggunakan \x72sebagai pengganti untuk rmemberi Anda bonus 20 poin dengan biaya kehilangan bonus 30 poin (untuk 2)

@ WumpusQ. Wumbley oh, Anda benar di kedua akun. Saya tidak memikirkan yang 2digunakan di sana, biarkan saya melihat apakah saya dapat menemukan cara untuk menghilangkannya dan menghindari kehilangan bonus.
FireFly

Astaga, itu cerdik! Ini terlihat seperti kode sandi Reverse ROT12 ASCII ... (apakah saya benar?) Dilakukan dengan baik!
WallyWest

Jawaban bagus. Tetapi apakah trdianggap sebagai sumber daya eksternal?
Trauma Digital

5

C, 75 byte - 60 = 15

Terima kasih kepada @gastropner untuk mendapatkan skor turun dari 50 menjadi 33 dan dari 19 menjadi 15!

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

Mengambil alamat array char sebagai input dan menulis string ke array.

Cobalah online!

Telepon dengan:

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

Keluaran:

Versi lama (90 byte - 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
Dengan mengaitkan ini, menggunakan kekuatan XOR dan rekursi, Anda bisa mencapai 93 - 60 = 33 byte:*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 Terima kasih!
Steadybox

Bisa pergi dengan i=i<30off untuk 2 byte lagi.
gastropner

@gastropner Tidak dapat digunakan 0.
Steadybox

Ah, ya tentu saja!
gastropner

4

JavaScript

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

(123 karakter = 173 karakter - 50 bonus)

Agak nooby, mungkin bisa mendapatkan lebih banyak ... Beritahu saya jika saya telah memasukkan sesuatu, peringatan ini "Semua markas Anda adalah milik kami". Ini juga hanya ASCII.

(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")')()

Jika Anda menghitung konsol itu sendiri sebagai output, ini juga akan dihitung (57 dengan 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'

Pendekatan yang bagus, meskipun beberapa subtitusi surat juga bisa memberi Anda bonus Peraturan-1 ... Kerja bagus.
WallyWest

@WallyWest: Terima kasih! Masalah dalam JavaScript adalah bahwa agak sulit untuk mendapatkan "A" tanpa melanggar aturan lain atau menggunakan terlalu banyak karakter - itu akan memakan waktu lebih dari 10 karakter saja.
Qantas 94 Heavy

Benar, Anda harus mengimbangi surat tambahan terhadap bonus ... Kerja bagus sekalipun!
WallyWest

x=(c.t+c)[6]sedikit lebih pendek
Bukan berarti Charles

juga, evalmungkin lebih mudah untuk diretas
Bukan karena Charles

4

Brainfuck, (227 - 60 = 167)

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

Saya tidak berpikir ruang di awal, +++++ +++++diperlukan? Bisa jadi 226 byte.
FinW

3

PHP (35 - 60 = -25 byte)

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] Program ini dapat diterjemahkan menggunakan xxd -r.
[2] Ya, solusi berat digunakan kembali di sini. Saya pikir itu ... masalah ketiga yang saya selesaikan dengan cara ini. Mungkin saya harus pindah ke sesuatu yang lain, tetapi ini bukan berarti ini tidak bagus untuk masalah yang melarang Anda menggunakan sebagian besar karakter.


Saya tidak mengerti, apa yang Anda coba lakukan di sini?
WallyWest

@WallyWest Dia menggigit-terbalik string; menghasilkan 31 karakter ASCII yang diperluas, yang PHP mencoba untuk menginterpretasikannya sebagai nama konstan dan karena tidak menemukan konstanta yang ditafsirkan sebagai string. String ini akan dinegasikan kembali dengan ~.
Titus

3

Bash, 52 - 10 - 30 = 12

Berikut ini akan dieksekusi di lingkungan (masih sangat umum) ISO-8859-1:

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

Panggilan ini tr, yang menerjemahkan karakter dengan cara yang sesuai. Saya harus menggunakan rdan melanggar aturan 2, atau menggunakan angka dalam pelarian dan melanggar aturan 3. Karena 3 memberikan bonus lebih banyak, saya memilih yang pertama.


1
Ya dia lakukan :) Anda tidak dapat menggunakan "a", "b", "t", "u", atau "y" dalam hal apa pun Anda juga memerlukan minimal dua kondisi
cowls

@ Cowls: Sepertinya saya benar-benar merindukan titik itu, terima kasih telah menjelaskannya. Tulis ulang jawaban saya untuk mematuhinya.
MvG

@MvG re-work yang bagus ... Bagus sekali!
WallyWest

Apakah trmerupakan sumber daya eksternal?
Trauma Digital

@ DigitalTrauma: Lebih seperti perpustakaan standar, saya katakan, meskipun ini pasti akan ditafsirkan. Tapi itu ditentukan dalam standar POSIX , jadi saya kira sistem POSIX harus memilikinya, jadi itu bagian dari sistem.
MvG

3

Pure Bash (tanpa sumber daya eksternal), 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 A $ h $ hy $ i $ m $ j ba $ k $ fa $ j $ fb $ f $ h $ i $ {Z [3]} $' \ x67 't $ iu $ k

Sengaja menjatuhkan bonus 10 poin untuk mendapatkan skor keseluruhan yang lebih baik.

Ini berfungsi pada semua bashversi 3.00.15 atau lebih baru yang telah saya coba.

bagaimana cara kerjanya

Tidak ada ilmu roket di sini - adil bash ekspansi dari satu bentuk atau lainnya:

  • Ekspansi hex sederhana untuk mendapatkan karakter yang diperlukan. Ini berfungsi untuk karakter yang representasi hex-nya tidak mengandung[012] . misalnya $'\x65'memberi kitae
  • Untuk karakter lain, kami menghasilkan bash array karakter berurutan menggunakan ekspansi brace ke inisialisasi array ( Z=({k..v})). Awal dari ekspansi brace dipilih dengan cermat sehingga indeks karakter yang kami butuhkan tidak mengandung [012]. misalnya ${Z[7]} memberi kita r.
  • bashcukup fleksibel untuk memungkinkan perintahnya dibangun dari isi beberapa string. Begitu$f$'\x63'h$i perluas echo.
  • Untuk karakter yang diperlukan hanya satu kali, ekspansi dimasukkan sesuai dengan string perintah gema.
  • Untuk karakter yang diperlukan dua kali atau lebih, lebih efisien untuk memperluas mereka ke variabel, kemudian referensi variabel.

Jawaban sebelumnya dengan bonus penuh, tetapi skor keseluruhan lebih buruk:

Pure Bash (tanpa sumber daya eksternal), 193 karakter - 60 bonus = 133

Saya tahu ini tidak akan menang, tetapi saya ingin membuktikan kepada diri saya bahwa ini mungkin terjadi bash , sambil memenuhi semua persyaratan:

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

Ini memerlukan versi yang cukup baru bashuntuk ${c^}ekspansi parameter. 4.2.25 baik-baik saja, tetapi 3.2.48 adalah no-go.


Saya angkat topi untuk Anda ... Saya baru saja mengeksekusi ini ... kerja bagus ... Kerja sangat bagus.
WallyWest

@WallyWest - Saya baru saja mengedit dalam versi yang lebih pendek.
Digital Trauma

3

Catatan tambahan, 364 - 40 = 324

Saya tidak bisa melakukannya tanpa loser, tentu saja. :)

/${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 + -

Ini dimulai dengan penyandian teks sebagai string base-36:

%-=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

Dan kemudian menghapus 1s dan 0s dan 2s secara hitung. String kemudian dapat diregenerasi dengan 36 <string-buf> cvrs, tetapi ini menghasilkan huruf besar, jadi kita perlu mengulangi dan menambahkan 0x20 untuk membuatnya lebih kecil.

Operator cvx execmemungkinkan kami untuk mengeksekusi fragmen string token operator yang disandikan biner dalam berbagai penyandian. Paling sederhana adalah untuk menyandikan operator dalam hex <92??>tetapi ada 2 di sana! Jadi pengkodean "tingkat pertama" adalah ascii85. Kemudian setiap string yang masih mengandung karakter terlarang melewati level ekstra hex -> ascii85 -> hex -> ascii85.


2

Brainfuck, 306 - 60 = 246

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

Tentunya ini bisa dikurangi entah bagaimana?
WallyWest

@WallyWest Saya tidak punya waktu untuk mengurangi program seperti ini sebesar 5% tanpa alasan: P merasa bebas untuk mengirim perbaikan!
Timtech

Tidak ada kewajiban yang diperlukan di sini :)
WallyWest

@WallyWest Anda benar tentang memperpendeknya. Itu bisa menggunakan beberapa perbaikan besar.
Timtech

2

PHP, 186 - 10 - 30 = 146

Saya harus sedikit kreatif;)

 <?=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'?>

Anda masih bisa sedikit golf dan mempertahankan ide jawaban: gema tidak memerlukan tanda kurung (1), Anda dapat menggunakan <?=bukannya gema (4), Anda dapat menyimpan huruf yang diulang dalam variabel ('l', ''). gunakan 54*2sebagai ganti54+54
Einacio

1
Tetap. Saya hanya bisa mengalikan yang tertentu. Saya tidak dapat melakukannya 54*2karena ada 2di dalamnya, jadi saya hanya bisa melakukannya dengan yang memiliki 3 atau lebih tinggi memiliki faktor. Jika saya menggunakan desimal, maka tidak ada karakter yang kurang.
ub3rst4r

beberapa tips bermain golf mengambil 50 byte. Sebagian besar (23 + 9 byte): Anda dapat mengganti yang tersisa chr(68+33)dan chr(38*3)dengan literal edan r.
Titus

1

Python, 181 - 40 = 141

[Saya menggunakan versi 2.7.2 YMMV - builtin, filehilang dengan python 3.X]

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'

Dan skor:

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

Bagus sekali, tetapi Anda benar-benar tidak perlu melakukan hal yang sama untuk menentukan skor ...;)
WallyWest

1

Gondong, 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

Saya tidak yakin apakah itu bisa dilakukan lebih pendek (keseluruhan) dengan tidak mendapatkan salah satu bonus kode - tujuan saya sedikit kurang pada kekurangan dan lebih banyak pada -60 ... Saya menyukai tantangan tidak menggunakan salah satu karakter yang dibatasi.

Dan ... Saya melakukan kesalahan - melewatkan perintah awal 'S'. : - /

Bagaimanapun, ini adalah versi "tanpa aturan" - memperluas variabel.

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

Dan itu memberikan skor 177-60 = 117. Jadi melanggar aturan pusat masih memberi saya skor keseluruhan yang lebih rendah.


Jawaban yang menarik ... Apakah ada emulator online yang dapat saya akses untuk menjalankan kode ini?
WallyWest

1
Tidak sepengetahuan saya, tetapi ada versi untuk gondong yang berjalan di hampir setiap platform - bahkan ada versi yang akan berjalan pada Raspberry Pi jika Anda ingin mesin
gondong yang

1

Perl 5, 99 - 50 = 49

Subrutin yang mengembalikan string yang diperlukan:

{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"}

Lihat itu dicetak sebagai berikut:

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

Ini dapat dipersingkat secara signifikan
Timtech
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.