Votre défi est d' écrire un programme pour traduire (anglais) leetspeak / lolspeak / txtspk en anglais normal. Votre programme doit lire depuis l'entrée et la sortie standard vers la sortie standard, sauf si votre langue ne les prend pas en charge.
Vous pouvez utiliser un fichier contenant une liste de mots en anglais, séparés par de nouvelles lignes. Il doit être appelé W
et sera situé dans le même répertoire que votre programme. (Sur les systèmes GNU / Linux et éventuellement d'autres, vous pouvez créer W
un lien vers /usr/share/dict/words
) La liste ne doit pas être entièrement en minuscules, vous pouvez l'utiliser pour déterminer si les mots doivent avoir des majuscules.
Ceci est basé sur une question maintenant supprimée publiée par Nikos M. qui peut être trouvée ici . Ce n'est pas un doublon car cette question d'origine a été fermée et n'a reçu aucune réponse, car il n'y avait pas de critère de gain et l'utilisateur n'était pas disposé à en mettre un.
Notation
Le score est un peu compliqué!
Ton score est
(leet items + bonuses) * 10 / (code length)
Le score le plus élevé l'emporte.
Votre programme ne doit pas être et ne peut probablement pas être parfait, mais plus il est précis, plus il reçoit de bonus!
Puisque $
peut signifier les deux s
et S
, vous obtenez un bonus de 5 points par élément de leet pour décider s'il doit avoir une majuscule (c'est-à-dire des majuscules au début des phrases).
Vous obtenez un bonus supplémentaire de 5 points par élément de leet pour la mise en œuvre de noms propres (mots qui ont toujours des majuscules) - la façon dont cela fonctionne est que vous parcourez la liste de mots, mettez la sortie en majuscule si seule une version en majuscule est présente dans le liste, et si les deux versions sont là, devinez.
Si un personnage a deux significations (par exemple, 1
peut signifier L
ou I
), vous obtenez 20 points par élément de leet pour ne choisir que les traductions de l'élément qui font de vrais mots anglais - utilisez la liste de mots pour cela. Si plus d'une traduction d'un élément leet fait un vrai mot anglais, vous pouvez choisir arbitrairement l'une des traductions valides et toujours obtenir le bonus.
Liste de Leet
Ce sont les éléments leet que vous pouvez implémenter. Vous n'êtes pas obligé de tous les implémenter, mais plus vous en ajoutez, plus vous obtenez de points.
Vous ne pouvez jamais marquer de points en traduisant un objet ou un personnage en lui-même. Cette règle annule toutes les erreurs que j'ai pu commettre dans la liste.
Il est tentant de faire un simple tr
ou s/.../.../g
. Le vrai défi est de déterminer laquelle des multiples significations pourrait et ne pourrait pas être correcte, en utilisant la liste de mots.
Articles Leet (chacun d'eux ajoute 1 à leet items
dans la formule)
$ -> s, S (-> c, C 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H teh -> le 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> OK kk -> OK 0 [zéro] -> o, O y, Y -> pourquoi 4 -> pour txt -> texte dafuq -> ce que le f ** k / \, ^ -> a, A \ / -> v, V d00d -> mec n00b -> débutant \ / \ / -> w, W 8 -> b, B | _ | -> u, U | - | -> h, H Я -> r, R j00 -> vous joo -> toi vv, VV -> w, W tomoz -> demain | <-> k, K [), |) -> d, D <3 -> amour > <-> x, X 10100111001 -> leet (représentation binaire de 1337) 2 -> aussi ur, UR -> votre, vous êtes (pas besoin de distinguer correctement les deux) u, U -> toi 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> i, I, l, L ! -> je, je,! c, C -> voir, C, mer b, B -> être, B, abeille [lettre accentuée] -> [forme non accentuée] (note 1 par lettre accentuée prise en charge) &, 7 -> et, anned, ant (peut être utilisé au milieu d'un mot)
Harder "Leet": marquez 30 points pour leet items
chacun
!!! 1 !! 1-> !!!!!!! (traduisez 1 dans une séquence de! en!) !!! un! -> !!!!! ! eleven-> !!!
Exemples
Ce sont des exemples de ce qu'un programme qui implémente tous les caractères leet ci-dessus, et certains des bonus, pourrait faire:
Exemple de phrase: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Censure basée sur leet: $#!+
=s**t
Leet extrême: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor suffixe: H4X0R
=hacker
Leet plus extrême: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Exemple de notation
Bash, 10 personnages, 3 objets, pas de bonus:
tr 137 let
Ce scores ( 1 * 3 ) * 10 / 10 = 3
.
tr
ou s/.../.../g
. Le simple fait de traduire des choses de ce genre constituerait un défi ennuyeux, nous devons donc récompenser de meilleures traductions qui utilisent la liste de mots
sed
script.)
sed
script, je veux dire plus qu'un simple s/.../.../g
, mais un fichier qui est analysé et exécuté par sed
lui-même. Aussi laconique que soit la langue, elle pourrait être une langue décente pour le golf ...
sed
les scripts sont également très bien et pourraient être très intéressants, ils pourraient très bien faire cela en raison de la courte syntaxe de substitution, vous pourriez être en mesure de lire à partir de la liste de mots, soit avec des extensions GNU ou en utilisant sed
dans le cadre d'un programme Bash plus large