Tantangan Anda adalah menulis program untuk menerjemahkan (bahasa Inggris) leetspeak / lolspeak / txtspk ke dalam bahasa Inggris normal. Program Anda harus membaca dari input dan output standar ke output standar, kecuali bahasa Anda tidak mendukungnya.
Anda dapat menggunakan file yang berisi daftar kata-kata dalam bahasa Inggris, dipisahkan oleh baris baru. Itu harus dipanggil W
dan akan berlokasi di direktori yang sama dengan program Anda. (Pada sistem GNU / Linux dan mungkin yang lain, Anda dapat membuat W
tautan ke /usr/share/dict/words
) Daftar ini tidak harus huruf besar semua, Anda dapat menggunakannya untuk menentukan apakah kata-kata harus memiliki huruf besar.
Ini didasarkan pada pertanyaan yang sekarang dihapus yang diposting oleh Nikos M. yang dapat ditemukan di sini . Ini bukan duplikat karena pertanyaan awal ini telah ditutup dan tidak menerima jawaban apa pun, karena tidak ada kriteria menang dan pengguna tidak mau memasukkannya.
Mencetak gol
Skornya sedikit rumit!
nilaimu adalah
(leet items + bonuses) * 10 / (code length)
Kemenangan skor tertinggi.
Program Anda tidak harus dan mungkin tidak bisa sempurna, tetapi semakin akurat, semakin banyak bonus yang didapat!
Karena $
dapat berarti keduanya s
dan S
, Anda mendapatkan bonus 5 poin per item leet untuk memutuskan apakah itu harus memiliki huruf kapital (yaitu huruf kapital di awal kalimat).
Anda mendapatkan bonus lebih lanjut dari 5 poin per item leet untuk menerapkan kata benda yang tepat (kata-kata yang selalu memiliki huruf kapital) - cara kerjanya adalah bahwa Anda akan melihat melalui daftar kata, membuat output dikapitalisasi jika hanya versi huruf kapital hadir di daftar, dan jika kedua versi ada, tebak saja.
Jika karakter memiliki dua makna (mis. 1
Bisa berarti L
atau I
), Anda mendapatkan 20 poin per item leet untuk hanya memilih terjemahan item yang membuat kata-kata bahasa Inggris nyata - gunakan daftar kata untuk ini. Jika lebih dari satu terjemahan item leet menghasilkan kata bahasa Inggris yang nyata, Anda dapat secara sewenang-wenang memilih salah satu terjemahan yang valid dan masih mendapatkan bonus.
Daftar Leet
Ini adalah item leet yang dapat Anda terapkan. Anda tidak harus menerapkan semuanya, tetapi semakin banyak Anda tambahkan, semakin banyak poin yang Anda dapatkan.
Anda tidak dapat mencetak poin dengan menerjemahkan item atau karakter ke dirinya sendiri. Aturan ini mengesampingkan kesalahan yang mungkin saya buat dalam daftar.
Sangat menggoda untuk melakukan hal yang sederhana tr
atau s/.../.../g
. Tantangan sebenarnya adalah menentukan mana dari banyak makna yang bisa dan tidak bisa benar, menggunakan daftar kata.
Item Leet (masing-masing menambahkan 1 ke leet items
dalam rumus)
$ -> s, S (-> c, C 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H teh -> itu 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> OK kk -> OK 0 [nol] -> o, O y, Y -> mengapa 4 -> untuk txt -> teks dafuq -> apa yang f ** k / \, ^ -> a, A \ / -> v, V d00d -> dude n00b -> pemula \ / \ / -> w, W 8 -> b, B | _ | -> u, U | - | -> h, H Я -> r, R j00 -> Anda joo -> kamu vv, VV -> w, W tomoz -> besok | <-> k, K [), |) -> d, D <3 -> cinta > <-> x, X 10100111001 -> leet (representasi biner 1337) 2 -> juga ur, UR -> Anda, Anda (tidak perlu membedakan keduanya dengan benar) kamu, kamu -> kamu 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> i, I, l, L ! -> saya, saya ,! c, C -> see, C, sea b, B -> be, B, bee [surat beraksen] -> [formulir tidak beraksen] (skor 1 per huruf beraksen didukung) &, 7 -> dan, anned, semut (dapat digunakan di tengah kata)
Harder "Leet": skor 30 poin untuk leet items
masing - masing
!!! 1 !! 1-> !!!!!!! (terjemahkan 1 dalam urutan! menjadi!) !!! satu! -> !!!!! ! sebelas-> !!!
Contohnya
Ini adalah contoh dari apa yang bisa dilakukan oleh program yang menerapkan semua karakter leet di atas, dan beberapa bonus,:
Contoh kalimat: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Sensor berbasis leet: $#!+
=s**t
Leet ekstrem: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor suffix: H4X0R
=hacker
Leet yang lebih ekstrem: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Contoh Pemberian Skor
Bash, 10 karakter, 3 item, tidak ada bonus:
tr 137 let
Skor ini ( 1 * 3 ) * 10 / 10 = 3
.
sumber
tr
ataus/.../.../g
. Hanya menerjemahkan hal-hal seperti itu akan membuat tantangan yang membosankan, jadi kita perlu menghargai terjemahan yang lebih baik yang menggunakan daftar katased
naskah.)sed
skrip, maksud saya lebih dari sekadar sederhanas/.../.../g
, tetapi sebuah file yang diuraikan dan dijalankan dengansed
sendirinya. Sekecil apa pun bahasanya, itu mungkin bahasa golf yang layak ...sed
skrip juga baik dan bisa sangat menarik, mereka bisa melakukannya dengan sangat baik karena sintaksis substitusi pendek, Anda mungkin dapat membaca dari daftar kata, baik dengan ekstensi GNU atau dengan menggunakansed
sebagai bagian dari program Bash yang lebih besarJawaban:
Javascript (49 + 5635) * 10/2174 = 26.14
Demo Online:
Opsi "Kamus nyata" tidak berfungsi di drop box tetapi akan berfungsi jika dijalankan di server web nyata. Diuji di server pengembangan studio visual dan google chrome.
https://dl.dropboxusercontent.com/u/141246873/leettranslator/index.html
Skor:
49 item leet = 49
Bonus kapitalisasi = 5 * 49 = 245
bonus pencarian kamus = 20 * 49 = 980
seru seru * 3 = 90 * 49 = 4410
(item leet + bonus) * 10 / (panjang kode)
(49 + 5635) * 10/2174 = 26.14
Kode:
Tidak Disatukan:
Hasil tes:
Catatan:
Kamus adalah file javascript terpisah dengan objek bernama W yang berisi semua kata. Ini hanya berisi kata-kata yang saya butuhkan untuk menjalankan tes yang relevan.
sumber
W.js
jika dihapus)Haskell - Skor 1,421421421: (37 item + (21 bonus (kapitalisasi) * 5)) * 10 / (999 bytes)
Ini jawaban terakhir saya.
Tes
Ketika program dikompilasi ke file bernama
min-lt
, Anda dapat menulis skrip shell berikutyang akan mencetak ini
sumber
-ks-
saya berartiks
di tengah kata. Saya akan melihat ini segera setelah saya menemukan kompilerhaskell-platform
paket. Apakah Anda punya contoh untukks
?<insertnamehere> rocX
atauroX
Extended BrainFuck : 0,6757
Jadi ini artinya 15 terjemahan "$ (5 @ 437 + # 0821! &", Tidak ada bonus dan ia memiliki 222 byte (tidak termasuk umpan baris yang sempurna). 15 * 10/222 = 0,6757
Pemakaian:
EBF tidak benar-benar dibuat untuk bermain golf tetapi fitur rle, makro dan fitur string cetak membuatnya agak lebih mudah untuk dikompres daripada BrainFuck. Biner BrainFuck akhir yang dikompilasi terlihat seperti ini:
sumber
~"OTLHEAND"
Saya bisa membuat semua karakter sekali untuk 107 byte kode objek daripada membuat mereka dari 0 setiap kali menggunakan 354, tapi jawaban saya dioptimalkan untuk ukuran kode EBF :)Jawa: 1.236
Jadi ia melakukan transformasi berikut
Perhitungan skor rumit
((39 + (21 * 5)) * 10) / 1165 = 1.236
Hapus kode Golf:
sumber
C # skor 45 * 10/2556 = 0,176
Program dapat menampilkan hampir semua huruf besar dan kecil. Karena saya tidak menggunakan daftar kata bahasa Inggris maka kunci pertama yang ditemukan dalam Kamus digunakan. Misalnya \ / \ / menjadi vav. Jika char adalah huruf pertama dari sebuah kata, ToUpper diterapkan.
Inilah hasil pengujian saya:
sumber