Qualcuno qui è un fan sfegatato di Bethesda? Forse preferisci Obsidian Entertainment? Bene, se sei una di queste cose rispetto alla seguente immagine dovrebbe esserti relativamente familiare.
Mi sono preso la libertà di preparare una sfida ASCII-Art piuttosto singolare, quindi ecco il primo indizio su cosa ho intenzione di farti fare:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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 | |
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Questo è un modello di base (vuoto) per il design del terminale RobCo Fallout in puro ASCII, il tuo compito sarà:
- Innanzitutto, genera questo modello.
- Quindi, dato un elenco di stringhe
le un numero0 <= n <= 4per riempirlo!
Le due parti dinamiche di un terminale di hacking di fallout sono:
Il numero di tentativi
- Il numero di tentativi rimanenti (indicato da caselle delimitate da spazi.
- Ai fini di questa sfida si utilizzerà
Xinvece di■.
- Ai fini di questa sfida si utilizzerà
Le password
- Le password, definite da
l, sono intervallate da simboli ASCII stampabili casuali. - Le password, come puoi vedere dall'esempio, possono racchiudere più righe (
NAMES). - Tutte le password nella schermata del terminale dovrebbero avere le stesse possibilità di trovarsi ovunque.
- Ci si può aspettare che tutte le password abbiano la stessa lunghezza, anche se questo non ha importanza.
- L'elenco dei simboli utilizzabili per le password distinte sono:
!"#$%&'()*+/:;<=>?@[\]^_{|}. - Tutte le password
ldevono avere la stessa lunghezza. - LE PASSWORD DEVONO AVERE IL POTENZIALE DI AVVOLGERE TRA ENTRAMBE LE COLONNE.
- Questo vale anche per le righe, ma solo per un indirizzo byte superiore (0x18-> 0x01 non è valido).
- Lo spazio di visualizzazione per le password su entrambi i lati è largo 15 (con uno spazio su entrambi i lati).
- Non puoi presumere che le parole in
lsaranno più lunghe di così.
- Non puoi presumere che le parole in
- Le password sono solo alfabetiche, ovvero solo lettere.
Esempio:
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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Se n = 2sullo stesso esempio:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Questi esempi sono stati realizzati manualmente, quindi la distribuzione non è casuale, scusate.
Questo è code-golf , il conteggio di byte più basso sarà il vincitore accettato. Lo ricompenserò dopo 3 giorni se non sono state inviate risposte per un totale di 250 REP.
NAMESpunto 2 nel punto elenco? " può aspettare che tutte le password abbiano la stessa lunghezza, anche se questo non ha importanza " o " Tutte le password in l devono avere la stessa lunghezza. "? Può darsi che io sia cieco (di nuovo!) Ma non vedo RACESin nessuno dei due output - dovremmo intendere questo per significare che dovrebbe esserci la possibilità che una password non venga utilizzata? È Math.random(ed equivalenti) abbastanza casuale ai fini di questa sfida?
