Ваша задача - написать программу для перевода (английский) leetspeak / lolspeak / txtspk на обычный английский. Ваша программа должна читать из стандартного ввода и вывода в стандартный вывод, если ваш язык не поддерживает их.
Вы можете использовать файл, содержащий список слов на английском языке, разделенных новыми строками. Он должен быть вызван W
и находиться в том же каталоге, что и ваша программа. (В системах GNU / Linux и, возможно, в других вы можете сделать W
ссылку на /usr/share/dict/words
этот список). Список не обязательно должен быть в нижнем регистре, вы можете использовать его, чтобы определить, должны ли слова иметь заглавные буквы.
Это основано на удаленном вопросе, опубликованном Никосом М., который можно найти здесь . Это не дубликат, так как этот оригинальный вопрос был закрыт и не получил никаких ответов, потому что не было критерия выигрыша, и пользователь не хотел его вводить.
счет
Подсчет очков немного сложнее!
ваш счет
(leet items + bonuses) * 10 / (code length)
Самый высокий балл выигрывает.
Ваша программа не должна быть и, вероятно, не может быть идеальной, но чем она точнее, тем больше бонусов!
Так как $
может означать и то, s
и другое S
, вы получаете бонус в 5 баллов за каждый элемент leet за решение, должно ли оно иметь заглавную букву (то есть заглавные буквы в начале предложений).
Вы получаете дополнительный бонус в 5 баллов за элемент leet для реализации собственных имен (слов, которые всегда имеют заглавные буквы) - способ, которым это работает, заключается в том, что вы просматриваете список слов, делаете вывод заглавными, если в нем присутствует только заглавная версия. список, и если обе версии есть, просто угадайте.
Если персонаж имеет два значения (например, 1
может означать L
или I
), вы получаете 20 баллов за элемент leet за выбор только тех переводов элемента, которые составляют настоящие английские слова - используйте для этого список слов. Если более одного перевода элемента leet представляет собой реальное английское слово, вы можете произвольно выбрать один из действительных переводов и при этом получить бонус.
Список Leet
Это те элементы, которые вы можете реализовать. Вам не нужно реализовывать их все, но чем больше вы добавляете, тем больше очков вы получаете.
Вы никогда не сможете набрать очки, переводя предмет или персонажа на себя. Это правило отменяет любые ошибки, которые я мог допустить в списке.
Это заманчиво сделать простой tr
или s/.../.../g
. Реальная задача состоит в том, чтобы определить, какое из нескольких значений может и не может быть правильным, используя список слов.
Leet Items (каждый из них добавляет 1 к leet items
формуле)
$ -> s, S (-> C, C 5 -> с, с @ -> а, а 4 -> а, а 3 -> е, е 7 -> т, т + -> т, т # -> ч, ч это 'd -> ed pwnd -> pwned pwnt -> pwned К, К -> ОК кк -> ОК 0 [ноль] -> о, о у, у -> почему 4 -> для TXT -> текст Дафук -> что за ** / \, ^ -> а, а \ / -> V, V d00d -> чувак n00b -> новичок \ / \ / -> ш, ш 8 -> б, б | _ | -> ты, ты | - | -> ч, ч Я -> R, R J00 -> Вы Джу -> ты VV, VV -> W, W Томоз -> завтра | <-> к, к [), |) -> д, д <3 -> любовь > <-> х, х 10100111001 -> leet (двоичное представление 1337) 2 -> чтобы тоже ур, UR -> твой, ты (нет необходимости правильно различать два) ты, ты -> ты 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> я, я, л, л ! -> Я, я! C, C -> см., C, море б, б -> бе, б, пчела [акцентированное письмо] -> [не акцентированная форма] (оценка 1 за акцентированное письмо поддерживается) &, 7 -> и anned, ant (можно использовать в середине слова)
Сложнее "Лет": набери 30 очков за leet items
каждого
!!! 1 !! 1-> !!!!!!! (переведите 1 в последовательности! в!) !!! один! -> !!!!! ! одиннадцать-> !!!
Примеры
Это примеры того, что может сделать программа, которая реализует все приведенные выше символы leet, и некоторые бонусы:
Пример предложения: |-|3 15 $|_|(# @ n00b
=He is such a newbie
Leet-на-основе цензура: $#!+
=s**t
Extreme Leet: \/\/ 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