Вашим завданням є написати програму для перекладу (англійською) leetspeak / lolspeak / txtspk на звичайну англійську. Ваша програма повинна читати від стандартного вводу та виводу до стандартного виводу, якщо ваша мова не підтримує їх.
Ви можете використовувати файл, що містить перелік слів англійською мовою, розділений новими рядками. Його слід викликати W
і буде розміщено в тому ж каталозі, що і ваша програма. (У системах GNU / Linux та, можливо, інших, ви можете зробити W
посилання на /usr/share/dict/words
) Список не повинен бути реєстровим, ви можете використовувати його, щоб визначити, чи мають слова мати великі літери.
Це ґрунтується на видаленому зараз питанні Нікоса М., яке можна знайти тут . Це не дублікат, оскільки це оригінальне запитання було закрито, і відповіді на нього не було, оскільки не було критерію виграшу, і користувач не бажав його ставити.
Оцінка балів
Рахунок трохи складний!
Ваш рахунок є
(leet items + bonuses) * 10 / (code length)
Найвищий результат виграє.
Ваша програма не повинна бути і, ймовірно, не може бути досконалою, але чим точніша вона, тим більше бонусів вона отримує!
Оскільки це $
може означати і те, s
і інше S
, ви отримуєте бонус у 5 балів за кожний предмет, який вирішує, чи має він мати велику літеру (тобто великі літери на початку речень).
Ви отримуєте додатковий бонус у 5 балів за кожну позицію за реалізацію власних іменників (слова, у яких завжди є великі літери) - як це працює, якщо ви переглянете список слів, зробіть вихідний з великої літери, якщо у версії присутня лише великова версія список, і якщо обидві версії є, просто здогадайтесь.
Якщо персонаж має два значення (наприклад, 1
може означати L
або I
), ви отримуєте 20 балів за деталь лише, щоб вибрати лише ті переклади елемента, які складають справжні англійські слова - використовуйте для цього список слів. Якщо більш ніж один переклад літнього предмету складає справжнє англійське слово, ви можете довільно вибрати один із дійсних перекладів і все одно отримати бонус.
Список Leet
Це найголовніші елементи, які ви можете реалізувати. Вам не доведеться реалізувати їх усі, але чим більше ви додасте, тим більше очок отримуєте.
Ви ніколи не можете набрати очки, переклавши предмет або символ на себе. Це правило перекриває будь-які помилки, які я могла допустити у списку.
Заманливо зробити простий tr
або s/.../.../g
. Справжньою задачею є визначити, яке з кількох значень могло б бути, а що не можна виправити, використовуючи список слів.
Пусті елементи (кожен із них додає 1 leet items
у формулу)
$ -> s, S (-> с, С 5 -> с, S @ -> a, A 4 -> а, А 3 -> е, Е 7 -> т, Т + -> т, Т # -> ч, Н teh -> the 'd -> ред pwnd -> pwned pwnt -> pwned k, K -> ОК kk -> ОК 0 [нуль] -> о, О y, Y -> чому 4 -> для txt -> текст dafuq -> що f ** k / \, ^ -> а, А \ / -> v, V d00d -> чувак n00b -> новачок \ / \ / -> ш, ш 8 -> б, В | _ | -> у, U | - | -> ч, Н Я -> г, R j00 -> ти joo -> ти vv, VV -> w, W tomoz -> завтра | <-> к, К [), |) -> d, D <3 -> любов > <-> х, X 10100111001 -> leet (двійкове представлення 1337) 2 -> до, теж ур, UR -> твій, ти (немає необхідності правильно розрізняти два) u, U -> ти 8 -> -ате-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> я, я, л, л ! -> я, я,! c, C -> див., C, море б, В -> бути, В, бджола [лист з наголосом] -> [форма без наголосу] (оцінка 1 за лист з наголосом, що підтримується) &, 7 -> і, мурашник, мураха (може використовуватися в середині слова)
Твердіший "Леет": набрати по 30 очок за leet items
кожного
!!! 1 !! 1-> !!!!!!! (перекладіть 1 у послідовності! 's у!' s) !!! один! -> !!!!! ! одинадцять-> !!!
Приклади
Ось приклади того, що програма, яка реалізує всі символи Leet вище, та деякі бонуси, може:
Приклад пропозиції: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Лейтерована цензура: $#!+
=s**t
Крайній літ: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
суфікс -xor: H4X0R
=hacker
Більш екстремальний літ: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
Приклад балів
Баш, 10 символів, 3 предмети, без бонусів:
tr 137 let
Це бали ( 1 * 3 ) * 10 / 10 = 3
.
tr
або s/.../.../g
. Просто переклад подібних речей склав би нудне завдання, тому нам потрібно винагороджувати кращі переклади, які використовують список слів
sed
сценарій.)
sed
сценарій, я маю на увазі більше, ніж простий s/.../.../g
, але файл, який розбирається і виконується sed
сам по собі. Настільки ж лаконічною є ця мова, це може бути пристойною мовою гольфу ...
sed
Сценарії також прекрасні і можуть бути дуже цікавими, вони могли б зробити це дуже добре з-за синтаксису коротких підстановок, ви можете прочитати зі списку слів або з розширеннями GNU, або використовуючи sed
як частину більшої програми Bash