Ihre Herausforderung besteht darin , ein Programm zu schreiben, mit dem Sie (Englisch) leetspeak / lolspeak / txtspk in normales Englisch übersetzen können. Ihr Programm sollte von der Standardeingabe und -ausgabe zur Standardausgabe lesen, es sei denn, Ihre Sprache unterstützt diese nicht.
Sie können eine Datei verwenden, die eine Liste von Wörtern in englischer Sprache enthält, die durch neue Zeilen getrennt sind. Es sollte aufgerufen werden W
und befindet sich im selben Verzeichnis wie Ihr Programm. (Auf GNU / Linux-Systemen und möglicherweise auch auf anderen können Sie W
einen Link /usr/share/dict/words
erstellen.) Die Liste muss nicht nur aus Kleinbuchstaben bestehen, sondern kann auch verwendet werden, um zu bestimmen, ob Wörter Großbuchstaben enthalten sollen.
Dies basiert auf einer jetzt gelöschten Frage von Nikos M., die hier zu finden ist . Dies ist kein Duplikat, da diese ursprüngliche Frage geschlossen wurde und keine Antworten erhielt, da es kein Gewinnkriterium gab und der Benutzer nicht bereit war, eine Frage einzutragen.
Wertung
Die Wertung ist etwas kompliziert!
Dein Ergebnis ist
(leet items + bonuses) * 10 / (code length)
Höchste Punktzahl gewinnt.
Ihr Programm muss nicht perfekt sein und kann es wahrscheinlich auch nicht, aber je genauer es ist, desto mehr Boni erhält es!
Da $
kann beides heißen s
und S
, Sie erhalten einen Bonus von 5 Punkten pro Leet Item für die Entscheidung, ob es einen Großbuchstaben haben soll (dh Großbuchstaben am Satzanfang).
Für das Implementieren von Eigennamen (Wörter, die immer Großbuchstaben haben) erhalten Sie einen weiteren Bonus von 5 Punkten pro Leet Item - so wie dies funktioniert, würden Sie die Wortliste durchsehen und die Ausgabe aktivieren, wenn nur eine großgeschriebene Version in der vorhanden ist Liste, und wenn beide Versionen vorhanden sind, raten Sie einfach.
Wenn ein Charakter zwei Bedeutungen hat (z. B. oder 1
bedeuten kann ), erhalten Sie 20 Punkte pro Leet-Element, wenn Sie nur die Übersetzungen des Elements auswählen, die echte englische Wörter ergeben - verwenden Sie dazu die Wortliste. Wenn mehr als eine Übersetzung eines Leet-Artikels ein echtes englisches Wort ergibt, können Sie beliebig eine der gültigen Übersetzungen auswählen und erhalten trotzdem den Bonus.L
I
Liste von Leet
Dies sind die Leet-Elemente, die Sie implementieren können. Sie müssen nicht alle implementieren, aber je mehr Sie hinzufügen, desto mehr Punkte erhalten Sie.
Sie können niemals Punkte erzielen, indem Sie einen Gegenstand oder Charakter in sich selbst übersetzen. Diese Regel überschreibt alle Fehler, die ich in der Liste gemacht habe.
Es ist verlockend, ein einfaches tr
oder zu tun s/.../.../g
. Die eigentliche Herausforderung besteht darin, anhand der Wortliste zu bestimmen, welche der mehreren Bedeutungen richtig sein kann und welche nicht.
Leet Items (jedes von diesen addiert 1 zu leet items
in der Formel)
$ -> s, S (-> c, c 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H die -> die 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> OK kk -> OK 0 [Null] -> o, O y, Y -> warum 4 -> für txt -> text dafuq -> was zum f ** k / \, ^ -> a, A \ / -> v, V d00d -> Alter n00b -> newbie \ / \ / -> w, W 8 -> b, B | _ | -> u, u | - | -> h, h Я -> r, R j00 -> du joo -> du vv, VV -> w, W tomoz -> morgen | <-> k, K [), |) -> d, D <3 -> Liebe > <-> x, X 10100111001 -> leet (binäre Darstellung von 1337) 2 -> auch ur, UR -> your, you (keine Notwendigkeit, zwischen den beiden richtig zu unterscheiden) u, u -> du 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> ich, ich, ich, ich ! -> ich, ich! c, C -> siehe, C, Meer b, B -> sei, B, Biene [Akzentbuchstabe] -> [Nicht-Akzentbuchstabe] (Punktzahl 1 pro unterstütztem Akzentbuchstaben) &, 7 -> und, anned, ant (kann in der Mitte eines Wortes verwendet werden)
Härtere „Leet“: Score 30 Punkte für leet items
jeden
!!! 1 !! 1-> !!!!!!! (Einsen in eine Folge von Einsen in Einsen übersetzen) !!! eins! -> !!!!! ! elf-> !!!
Beispiele
Dies sind Beispiele dafür, was ein Programm, das alle oben genannten Leet-Zeichen und einige der Boni implementiert, möglicherweise leisten kann:
Beispielsatz: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Leet-basierte Zensur: $#!+
=s**t
Extreme Leet: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor Suffix: H4X0R
=hacker
Extremeres Leet: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Beispiel Scoring
Bash, 10 Zeichen, 3 Elemente, keine Boni:
tr 137 let
Dies punktet ( 1 * 3 ) * 10 / 10 = 3
.
tr
oder zu bekämpfen s/.../.../g
. Nur solche Dinge zu übersetzen, würde eine langweilige Herausforderung darstellen, daher müssen wir bessere Übersetzungen belohnen, die die Wortliste verwenden
sed
Drehbuch.)
sed
Skript sage , meine ich mehr als eine einfache s/.../.../g
, sondern eine Datei, die von sed
selbst analysiert und ausgeführt wird . So knapp die Sprache auch ist, es könnte sich um eine anständige Golfsprache handeln ...
sed
Skripte sind ebenfalls in Ordnung und könnten sehr interessant sein. Aufgrund der kurzen Substitutionssyntax könnten sie hier sehr gut funktionieren. Sie können sie möglicherweise aus der Wortliste lesen, entweder mit GNU-Erweiterungen oder sed
als Teil eines größeren Bash-Programms