Su desafío es escribir un programa para traducir (inglés) leetspeak / lolspeak / txtspk al inglés normal. Su programa debe leer desde la entrada y salida estándar hasta la salida estándar, a menos que su idioma no lo admita.
Puede usar un archivo que contenga una lista de palabras en inglés, separadas por nuevas líneas. Debe llamarse W
y se ubicará en el mismo directorio que su programa. (En los sistemas GNU / Linux y posiblemente en otros, puede hacer W
un enlace /usr/share/dict/words
) La lista no tiene que estar en minúsculas, puede usarla para determinar si las palabras deben tener mayúsculas.
Esto se basa en una pregunta ahora eliminada publicada por Nikos M. que se puede encontrar aquí . Esto no es un duplicado ya que esta pregunta original se cerró y no recibió ninguna respuesta, porque no había un criterio ganador y el usuario no estaba dispuesto a poner una.
Tanteo
¡La puntuación es un poco complicada!
tu puntaje es
(leet items + bonuses) * 10 / (code length)
La puntuación más alta gana.
Su programa no tiene que ser y probablemente no pueda ser perfecto, pero cuanto más preciso sea, ¡más bonificaciones obtendrá!
Como $
puede significar ambos s
y S
, obtienes una bonificación de 5 puntos por elemento leet para decidir si debe tener una letra mayúscula (es decir, letras mayúsculas al comienzo de las oraciones).
Obtiene una bonificación adicional de 5 puntos por elemento leet para implementar nombres propios (palabras que siempre tienen mayúsculas): la forma en que esto funciona es que miraría a través de la lista de palabras, haría que la salida en mayúscula si solo una versión en mayúscula está presente en el lista, y si ambas versiones están ahí, solo adivina.
Si un personaje tiene dos significados (por ejemplo, 1
puede significar L
o I
), obtienes 20 puntos por elemento leet por solo elegir aquellas traducciones del elemento que hacen palabras reales en inglés; usa la lista de palabras para esto. Si más de una traducción de un elemento leet hace una palabra real en inglés, puede elegir arbitrariamente una de las traducciones válidas y aún así obtener la bonificación.
Lista de Leet
Estos son los elementos de leet que puede implementar. No tiene que implementarlos todos, pero cuanto más agregue, más puntos obtendrá.
Nunca puedes ganar puntos traduciendo un elemento o personaje a sí mismo. Esta regla anula cualquier error que pueda haber cometido en la lista.
Es tentador hacer un simple tr
o s/.../.../g
. El verdadero desafío es determinar cuál de los múltiples significados podría o no ser correcto, utilizando la lista de palabras.
Elementos de Leet (cada uno de estos agrega 1 a leet items
en la fórmula)
$ -> s, S (-> c, C 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H teh -> el 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> OK kk -> OK 0 [cero] -> o, O y, Y -> por qué 4 -> para txt -> texto dafuq -> que carajo / \, ^ -> a, A \ / -> v, V d00d -> amigo n00b -> novato \ / \ / -> w, W 8 -> b, B | _ | -> u, U | - | -> h, H Я -> r, R j00 -> usted joo -> tu vv, VV -> w, W tomoz -> mañana | <-> k, K [), |) -> d, D <3 -> amor > <-> x, X 10100111001 -> leet (representación binaria de 1337) 2 -> a, también ur, UR -> tu, eres (no es necesario distinguir correctamente entre los dos) u, U -> usted 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> i, I, l, L ! -> i, yo ,! c, C -> ver, C, mar b, B -> ser, B, abeja [letra acentuada] -> [forma no acentuada] (puntaje 1 por letra acentuada admitida) &, 7 -> y, anned, hormiga (puede usarse en el medio de una palabra)
"Leet" más difícil: consigue 30 puntos por leet items
cada
!!! 1 !! 1-> !!!!!!! (traduzca 1 en una secuencia de! 's en!' s) !!! uno! -> !!!!! ! once-> !!!
Ejemplos
Estos son ejemplos de lo que podría hacer un programa que implementa todos los caracteres anteriores y algunos de los bonos:
Oración de ejemplo: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Censura basada en Leet: $#!+
=s**t
Leet extremo: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor sufijo: H4X0R
=hacker
Leet más extremo: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Ejemplo de puntuación
Bash, 10 personajes, 3 artículos, sin bonificaciones:
tr 137 let
Esto puntúa ( 1 * 3 ) * 10 / 10 = 3
.
tr
o s/.../.../g
. Simplemente traducir cosas así supondría un desafío aburrido, por lo que debemos recompensar mejores traducciones que utilicen la lista de palabras
sed
guión.)
sed
script, me refiero a algo más que simple s/.../.../g
, sino un archivo que se analiza y ejecuta por sed
sí mismo. Tan breve como es el idioma, podría ser un lenguaje jugable decente ...
sed
los scripts también están bien y podrían ser muy interesantes, podrían funcionar muy bien en esto debido a la breve sintaxis de sustitución, es posible que pueda leer de la lista de palabras, ya sea con extensiones GNU o sed
como parte de un programa Bash más grande