Czy ktoś jest zagorzałym fanem Bethesdy? Może wolisz Obsidian Entertainment? Cóż, jeśli jesteś jedną z tych rzeczy, poniższe zdjęcie powinno być ci względnie znajome.
Pozwoliłem sobie przygotować dość wyjątkowe wyzwanie ASCII-Art, więc oto pierwsza wskazówka, co mam zrobić:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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 | |
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Jest to bardzo prosty (pusty) szablon dla projektu terminalu RobCo Fallout w czystym ASCII, Twoim zadaniem będzie:
- Najpierw wygeneruj ten szablon.
- Następnie podano listę ciągów znaków
li liczbę0 <= n <= 4do jej wypełnienia!
Dwie dynamiczne części Fallout Hacking Terminal to:
Liczba prób
- Liczba pozostałych prób (wskazanych przez pola rozdzielane spacjami).
- Do celów tego wyzwania będziesz używać
Xzamiast■.
- Do celów tego wyzwania będziesz używać
Hasła
- Hasła zdefiniowane przez
lsą przeplatane losowymi symbolami drukowalnymi ASCII. - Hasła, jak widać na przykładzie, mogą owijać wiele wierszy (
NAMES). - Wszystkie hasła na ekranie terminala powinny mieć równe szanse na znalezienie się w dowolnym miejscu.
- Wszystkie hasła mogą mieć jednakową długość, ale to nie ma znaczenia.
- Lista symboli użytecznych do oddzielnych haseł to:
!"#$%&'()*+/:;<=>?@[\]^_{|}. - Wszystkie hasła
lmuszą mieć jednakową długość. - HASŁA MUSZĄ MIEĆ POTENCJAŁ, ABY OWIJAĆ SIĘ MIĘDZY KOLUMNAMI.
- Dotyczy to również wierszy, ale tylko do adresu wyższego bajtu (0x18-> 0x01 jest nieprawidłowy).
- Obszar wyświetlania haseł po obu stronach ma 15 szerokości (ze spacją po obu stronach).
- Możesz założyć, że żadne słowa nie
lbędą dłuższe niż to.
- Możesz założyć, że żadne słowa nie
- Hasła są wyłącznie alfabetyczne, co oznacza tylko litery.
Przykład:
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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Jeśli n = 2na tym samym przykładzie:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Te przykłady zostały spreparowane ręcznie, więc przepraszam, dystrybucja nie jest losowa.
To jest golf golfowy , najniższa liczba bajtów zostanie zaakceptowanym zwycięzcą. Odbiorę to po 3 dniach, jeśli nie zostaną przesłane żadne odpowiedzi w sumie 250 REP.
NAMESdrugi punkt? „ Można oczekiwać, że wszystkie hasła będą miały taką samą długość, ale to nie ma znaczenia. ” Lub „ Wszystkie hasła w l muszą mieć taką samą długość. ”? Może po prostu jestem ślepy (znowu!), Ale nie widzę RACESw żadnym wyjściu - czy powinniśmy to rozumieć, że powinna istnieć możliwość, że hasło nie zostanie użyte? Czy Math.random(i odpowiedniki) są wystarczająco losowe do celów tego wyzwania?
