La tua sfida è quella di scrivere un programma per tradurre (inglese) leetspeak / lolspeak / txtspk in inglese normale. Il tuo programma dovrebbe leggere dallo standard input e output allo standard output, a meno che la tua lingua non li supporti.
È possibile utilizzare un file contenente un elenco di parole in lingua inglese, separate da nuove righe. Dovrebbe essere chiamato W
e si troverà nella stessa directory del programma. (Sui sistemi GNU / Linux e possibilmente su altri, è possibile creare W
un collegamento a /usr/share/dict/words
) L'elenco non deve essere in minuscolo, è possibile utilizzarlo per determinare se le parole devono avere maiuscole.
Questo si basa su una domanda ora cancellata pubblicata da Nikos M. che può essere trovata qui . Questo non è un duplicato poiché questa domanda originale è stata chiusa e non ha ricevuto alcuna risposta, perché non c'erano criteri vincenti e l'utente non era disposto a inserirne uno.
punteggio
Il punteggio è un po 'complicato!
il tuo punteggio è
(leet items + bonuses) * 10 / (code length)
Il punteggio più alto vince.
Il tuo programma non deve essere e probabilmente non può essere perfetto, ma più è preciso, più bonus ottiene!
Dal momento che $
può significare entrambi s
e S
, ricevi un bonus di 5 punti per oggetto leet per decidere se deve avere una lettera maiuscola (cioè lettere maiuscole all'inizio delle frasi).
Ottieni un ulteriore bonus di 5 punti per elemento leet per l'implementazione di nomi propri (parole che hanno sempre le maiuscole) - il modo in cui funziona è che guardi l'elenco delle parole, rendi l'output in maiuscolo se solo una versione in maiuscolo è presente nel elenco, e se entrambe le versioni sono presenti, indovina.
Se un personaggio ha due significati (ad es. 1
Può significare L
o I
), ottieni 20 punti per oggetto leet solo per scegliere quelle traduzioni dell'oggetto che rendono vere parole inglesi - usa la lista di parole per questo. Se più di una traduzione di un oggetto leet fa una vera parola inglese, puoi scegliere arbitrariamente una delle traduzioni valide e ottenere comunque il bonus.
Elenco di Leet
Questi sono gli elementi leet che puoi implementare. Non è necessario implementarli tutti, ma più aggiungi, più punti ottieni.
Non puoi mai segnare punti traducendo un oggetto o un personaggio in se stesso. Questa regola ha la precedenza su tutti gli errori che avrei potuto fare nella lista.
È allettante fare un semplice tr
o s/.../.../g
. La vera sfida è determinare quale dei molteplici significati potrebbe e non potrebbe essere corretto, usando la lista di parole.
Leet Items (ognuno di questi aggiunge 1 a leet items
nella formula)
$ -> s, S (-> c, C 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H il -> il 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> OK kk -> OK 0 [zero] -> o, O y, Y -> perché 4 -> per txt -> testo dafuq -> cosa f ** k / \, ^ -> a, A \ / -> v, V d00d -> amico n00b -> newbie \ / \ / -> w, W 8 -> b, B | _ | -> u, U | - | -> h, H Я -> r, R j00 -> tu joo -> tu vv, VV -> w, W tomoz -> domani | <-> k, K [), |) -> d, D <3 -> amore > <-> x, X 10100111001 -> leet (rappresentazione binaria del 1337) 2 -> anche a ur, UR -> tuo, sei (non c'è bisogno di distinguere correttamente tra i due) u, U -> tu 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> i, I, l, L ! -> I, I ,! c, C -> vedi, C, mare b, B -> essere, B, ape [lettera accentata] -> [modulo non accentato] (punteggio 1 per lettera accentata supportata) &, 7 -> e, anned, ant (può essere usato nel mezzo di una parola)
"Leet" più duro: segna 30 punti per leet items
ciascuno
!!! 1 !! 1-> !!!!!!! (traduci 1 in una sequenza di! in!) !!! uno! -> !!!!! ! undici> !!!
Esempi
Questi sono esempi di ciò che un programma che implementa tutti i personaggi leet sopra, e alcuni dei bonus, potrebbe essere in grado di fare:
Frase di esempio: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Censura basata su leet: $#!+
=s**t
Leet estremo: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor suffix: H4X0R
=hacker
Leet più estremo: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Punteggio di esempio
Bash, 10 personaggi, 3 oggetti, nessun bonus:
tr 137 let
Questo segna ( 1 * 3 ) * 10 / 10 = 3
.
tr
o s/.../.../g
. La sola traduzione di cose del genere costituirebbe una sfida noiosa, quindi dobbiamo premiare le traduzioni migliori che utilizzano l'
sed
sceneggiatura.)
sed
script, intendo più di un semplice s/.../.../g
, ma un file che viene analizzato ed eseguito da sed
solo. Per quanto la lingua sia concisa, potrebbe essere una lingua giocabile decente ...
sed
anche gli script vanno bene e potrebbero essere molto interessanti, potrebbero fare molto bene su questo a causa della breve sintassi di sostituzione, potresti essere in grado di leggere dalla lista di parole, con estensioni GNU o usando sed
come parte di un programma Bash più grande