フォールアウトターミナルハッキング

誰でもここでダイハードのベテスダファンですか?あなたはObsidian
Entertainmentを好きかもしれませんか?まあ、あなたが次の写真よりもこれらの事柄のどちらかであれば、あなたに比較的親しみがあるはずです。

The fallout terminal.

私は、ユニークなアスキーアートの挑戦を準備する自由を取ったので、ここで私があなたに何をしたいのかについての最初の手がかりがあります:

  _____________________________________________________
/                                                     
|     _____________________________________________     |
|    |                                             |    |
|    | 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                 |    |
|    |_____________________________________________|    |
|                                                       |
_______________________________________________________/ 
       _______________________________________/        

これは、純粋なASCII形式のRobCo
Fallout端末設計用の非常に基本的な(空白の)テンプレートです。あなたの仕事は次のようなものになります。

  • First, generate this template.
  • Then, given a list of strings l and a number
    0 <= n <= 4 to fill it up!

落ちるハッキング端末の2つの動的部分は次のとおりです。

試行回数

  • 試行回数 you have remaining (indicated by space delimited boxes.
    • For the purpose of this challenge you will be using
      X instead of .

パスワード

  • パスワード, defined by l, are interspersed with random
    printable ASCII symbols.
  • パスワード, as you can tell by the example, can wrap multiple rows
    (NAMES).
  • All passwords in the terminal screen should have an equal
    chance of being anywhere.
  • All passwords can be expected to be of equal length, though
    this doesn’t matter.
  • The list of symbols usable to separate passwords are:
    !"#$%&'()*+/:;<=>[email protected][]^_{|}.
  • All passwords in l must be of equal length.
  • PASSWORDS MUST HAVE THE POTENTIAL TO WRAP BETWEEN BOTH COLUMNS.
    • This also goes for rows, but only to a higher byte address
      (0x18->0x01 is invalid).
  • The display space for passwords on either side is 15 wide (with
    a space on either side).

    • You may assume no words in l will be longer than
      this.
  • Passwords are alphabetical only, meaning only letters.

例:

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/[email protected]( |    |
|    | 0x04 ^SMART([email protected]$*'^[email protected] | 0x10 []_#!"{|}'%$&^ |    |
|    | 0x05 (*@#%}*(!%)^(_! | 0x11 %$}[!#'^&_]{|" |    |
|    | 0x06 $%&'()*+/:;<[email protected]) | 0x12 SWORE|%'_!}^" |    |
|    | 0x07 "/')=*%!&>#<:$+ | 0x13 ^{['&$|!_]%"#} |    |
|    | 0x08 ;'*$&"(

ベストアンサー

JavaScript(ES8)、 575 568 564バイト

@Shaggy
のおかげで3バイト保存

r は残りの試行回数であり、 a
は、(r)/em>
はパスワードの配列です。

r=>a=>[...C=`!"#[]^$%&'*+;<{}=`].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`  "%%__
 /;;# \ 
[ "} $Welcome to ROBCO Industries (TM) Termlink'!Password Required#}'!Attempts Remaining:${" X".repeat(r).padEnd(9)};[$^1=^D<2=^E<3=^F<4*0<5*1<6*2<7*3<8*4<9*5<='+ ^#}}}+| [|*=0x1' "{{{%___$+;#}} !^0x0]ZZZ[|}#;}"&{![+ `).replace(/Z/g,(c,i)=>a.join``[(i%58>>5?y++:x++)%L],x=(R=n=>Math.random()*n|0)(L=360),y=x+180,[...Array(L-(n=a.sort(_=>R(3)-1).length)*a[0].length)].map(_=>a[R(n)]+=(C+`>[email protected]()/:\_|`)[R(27)])) 

構文ハイライトは意図的に無効になっています。これで何をすべきかわからない。

デモ

<div class=”snippet” data-lang=”js” data-hide=”true”
data-console=”true” data-babel=”false”> <div
class=”snippet-code snippet-currently-hidden”>

let f =

r=>a=>[...C=`!"#[]^$%&'*+;<{}=`].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`  "%%__
 /;;# \ 
[ "} $Welcome to ROBCO Industries (TM) Termlink'!Password Required#}'!Attempts Remaining:${" X".repeat(r).padEnd(9)};[$^1=^D<2=^E<3=^F<4*0<5*1<6*2<7*3<8*4<9*5<='+ ^#}}}+| [|*=0x1' "{{{%___$+;#}} !^0x0]ZZZ[|}#;}"&{![+ `).replace(/Z/g,(c,i)=>a.join``[(i%58>>5?y++:x++)%L],x=(R=n=>Math.random()*n|0)(L=360),y=x+180,[...Array(L-(n=a.sort(_=>R(3)-1).length)*a[0].length)].map(_=>a[R(n)]+=(C+`>[email protected]()/:\_|`)[R(27)])) O.innerText = f(3)(["SMART","ENACT","SWORE","PITYS","SMELL","CARTS","RACES"])


</div>
</div>

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です