Adakah orang di sini yang penggemar keras Bethesda? Mungkin Anda lebih suka Obsidian Entertainment? Nah, jika Anda salah satu dari hal-hal itu daripada gambar berikut harus relatif akrab bagi Anda.
Saya sudah bebas mempersiapkan tantangan ASCII-Art yang agak unik, jadi inilah petunjuk pertama tentang apa yang akan saya lakukan:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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 | |
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Ini adalah templat yang sangat mendasar (kosong) untuk desain terminal RobCo Fallout di ASCII murni, tugas Anda adalah:
- Pertama, hasilkan templat ini.
- Kemudian, berikan daftar string
l
dan nomor0 <= n <= 4
untuk mengisinya!
Dua bagian dinamis dari terminal peretasan yang gagal adalah:
Jumlah Usaha
- Jumlah upaya yang tersisa (ditunjukkan oleh kotak yang dibatasi ruang.
- Untuk tujuan tantangan ini, Anda akan menggunakan
X
sebagai gantinya■
.
- Untuk tujuan tantangan ini, Anda akan menggunakan
Kata Sandi
- Kata sandi, yang didefinisikan oleh
l
, diselingi dengan simbol ASCII yang dapat dicetak secara acak. - Kata sandi, seperti yang Anda tahu dari contoh, dapat membungkus banyak baris (
NAMES
). - Semua kata sandi di layar terminal harus memiliki peluang yang sama untuk berada di mana saja.
- Semua kata sandi dapat memiliki panjang yang sama, meskipun ini tidak masalah.
- Daftar simbol yang dapat digunakan untuk password terpisah:
!"#$%&'()*+/:;<=>?@[\]^_{|}
. - Semua kata sandi
l
harus memiliki panjang yang sama. - PASSWORDS HARUS MEMILIKI POTENSI UNTUK MEMBUAT KOLOM ANTARA KEDUA.
- Ini juga berlaku untuk baris, tetapi hanya ke alamat byte yang lebih tinggi (0x18-> 0x01 tidak valid).
- Ruang tampilan untuk kata sandi di kedua sisi adalah 15 lebar (dengan ruang di kedua sisi).
- Anda mungkin menganggap tidak ada kata yang
l
lebih panjang dari ini.
- Anda mungkin menganggap tidak ada kata yang
- Kata sandi hanya alfabet, artinya hanya huruf.
Contoh:
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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Jika n = 2
pada contoh yang sama:
_____________________________________________________
/ \
| _____________________________________________ |
| | | |
| | 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.
| |_____________________________________________| |
| |
\_______________________________________________________/
\_______________________________________/
Contoh-contoh ini dibuat secara manual, sehingga distribusinya tidak acak, maaf.
Ini adalah kode-golf , byte-count terendah akan menjadi pemenang yang diterima. Saya akan memberi hadiah ini setelah 3 hari jika tidak ada jawaban yang diajukan dengan total 250 REP.
NAMES
maksud dari poin kedua? " Semua kata sandi dapat diperkirakan memiliki panjang yang sama, meskipun ini tidak masalah. " Atau " Semua kata sandi di saya harus memiliki panjang yang sama. "? Mungkin saja saya menjadi buta (lagi!) Tapi saya tidak melihat RACES
di salah satu output - haruskah kita menganggap ini berarti ada kemungkinan password tidak digunakan? Apakah Math.random
(dan setara) cukup acak untuk keperluan tantangan ini?