Хтось тут убогий фанат Бетесди? Можливо, ви віддаєте перевагу Obsidian Entertainment? Добре, якщо ви будь-яка з цих речей, ніж наступна картина повинна бути вам досить знайомою.
Я взяв на себе сміливо готувати досить унікальний виклик ASCII-Art, тож ось перша підказка щодо того, що я маю робити у вас:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | Welcome to ROBCO Industries (TM) Termlink | |
| | Password Required | |
| | Attempts Remaining: | |
| | | |
| | 0x01 | 0x0D | |
| | 0x02 | 0x0E | |
| | 0x03 | 0x0F | |
| | 0x04 | 0x10 | |
| | 0x05 | 0x11 | |
| | 0x06 | 0x12 | |
| | 0x07 | 0x13 | |
| | 0x08 | 0x14 | |
| | 0x09 | 0x15 | |
| | 0x0A | 0x16 | |
| | 0x0B | 0x17 | |
| | 0x0C | 0x18 | |
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Це дуже базовий (порожній) шаблон для дизайну терміналу RobCo Fallout в чистому ASCII, ваше завдання буде:
- Спочатку згенеруйте цей шаблон.
- Потім, давши список рядків
l
і номер,0 <= n <= 4
щоб заповнити його!
Дві динамічні частини терміналу злому випаду:
Кількість спроб
- Кількість спроб, які у вас залишилися (позначено полями, відміченими місцями).
- Для цього завдання ви будете використовувати
X
замість цього■
.
- Для цього завдання ви будете використовувати
Паролі
- Паролі, визначені
l
, перемежовуються з випадковими символами ASCII для друку. - Паролі, як ви можете сказати на прикладі, можуть містити кілька рядків (
NAMES
). - Усі паролі на екрані терміналів повинні мати рівний шанс опинитися в будь-якому місці.
- Очікується, що всі паролі мають однакову довжину, хоча це не має значення.
- Список символів використовуваних для поділу паролів:
!"#$%&'()*+/:;<=>?@[\]^_{|}
. - Усі паролі
l
повинні бути однакової довжини. - ПАРОЛОГИ ПОВИННІ МАЙТЕ ПОТЕНЦІАЛЬНОГО ПОКРИТТЯ МІЖ ЗА КОЛОНАМИ.
- Це також стосується рядків, але лише до вищої байтової адреси (0x18-> 0x01 недійсна).
- Простір відображення паролів з обох боків - 15 ширин (з пробілом з обох боків).
- Ви можете припустити, що жодне слово
l
не буде довше цього.
- Ви можете припустити, що жодне слово
- Паролі мають лише алфавіт, тобто лише літери.
Приклад:
l = ["SMART","ENACT","SWORE","PITYS","SMELL","CARTS","RACES"]
, n = 4
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | Welcome to ROBCO Industries (TM) Termlink | |
| | Password Required | |
| | Attempts Remaining: X X X X | | # N = 4 drives these X's.
| | | |
| | 0x01 $?_/%$ENACT||"} | 0x0D TYS"_'$\#|^%&{} | |
| | 0x02 }:!*@{/_<"[]#>; | 0x0E #{!"^&\]'|}_[$% | |
| | 0x03 $%&'()*+/:;<\_' | 0x0F }|[(%SMELL/_$@( | |
| | 0x04 ^SMART(!@$*'^_@ | 0x10 []_#!"{|}'%$\&^ | |
| | 0x05 (*@#%}*(!%)^(_! | 0x11 %$}[!\#'^&_]{|" | |
| | 0x06 $%&'()*+/:;<_@) | 0x12 \SWORE|%'_!}\^" | |
| | 0x07 "/')=*%!&>#<:$+ | 0x13 ^{['&$|!_]%\"#} | |
| | 0x08 ;'*$&"(<%!#)RAC | 0x14 ']!|^#[$"_\}&{% | |
| | 0x09 ES:($&';%#+"<*/ | 0x15 @)($!CARTS*!@$_ | |
| | 0x0A ;'*$&"(<%!#)/+: | 0x16 !#%${"'}&[]^|_\ | |
| | 0x0B |'_!}$\%["#^{&] | 0x17 ]"_#$&}^%[{|\'! | |
| | 0x0C #{!"^&\]'|}_[PI | 0x18 _![&#{$%\^'|}"] | | # Notice how PITYS wrapped.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Якщо n = 2
на тому самому прикладі:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | Welcome to ROBCO Industries (TM) Termlink | |
| | Password Required | |
| | Attempts Remaining: X X | | # N = 2 drives these X's.
| | | |
| | 0x01 $?_/%$ENACT||"} | 0x0D TYS"_'$\#|^%&{} | |
| | 0x02 }:!*@{/_<"[]#>; | 0x0E #{!"^&\]'|}_[$% | |
| | 0x03 $%&'()*+/:;<\_' | 0x0F }|[(%SMELL/_$@( | |
| | 0x04 ^SMART(!@$*'^_@ | 0x10 []_#!"{|}'%$\&^ | |
| | 0x05 (*@#%}*(!%)^(_! | 0x11 %$}[!\#'^&_]{|" | |
| | 0x06 $%&'()*+/:;<_@) | 0x12 \SWORE|%'_!}\^" | |
| | 0x07 "/')=*%!&>#<:$+ | 0x13 ^{['&$|!_]%\"#} | |
| | 0x08 ;'*$&"(<%!#)RAC | 0x14 ']!|^#[$"_\}&{% | |
| | 0x09 ES:($&';%#+"<*/ | 0x15 @)($!CARTS*!@$_ | |
| | 0x0A ;'*$&"(<%!#)/+: | 0x16 !#%${"'}&[]^|_\ | |
| | 0x0B |'_!}$\%["#^{&] | 0x17 ]"_#$&}^%[{|\'! | |
| | 0x0C #{!"^&\]'|}_[PI | 0x18 _![&#{$%\^'|}"] | | # Notice how PITYS wrapped.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Ці приклади були створені вручну, тому розподіл не випадковий, вибачте.
Це код-гольф , найнижчим число байтів буде прийнятим переможцем. Я виграю це за 3 дні, якщо не надійде відповіді на загальну суму 250 РЄ.
NAMES
точка 2-ї кулі? " Можна очікувати, що всі паролі мають однакову довжину, хоча це не має значення. " Або " Усі паролі в l повинні бути однакової довжини. " Можливо, я просто сліпий (знову ж таки!), Але я не бачу RACES
в жодному з результатів - чи слід це вважати, що має бути можливість використання пароля? Чи Math.random
достатньо випадкових (і їх еквівалентів) для цілей цього виклику?