Add cli options
This commit is contained in:
parent
ed2534e6ef
commit
59e2c7718b
13
arc.bqn
13
arc.bqn
|
@ -5,9 +5,17 @@
|
|||
⟨ansi⟩←•Import "ansi.bqn"
|
||||
⟨Game⟩←•Import "logic.bqn"
|
||||
|
||||
opts←{
|
||||
a←•args
|
||||
•Show a
|
||||
chars ⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--chars")⊸⍷)⊸/a
|
||||
fchars⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--fchars")⊸⍷)⊸/a
|
||||
levels⇐{0=≠𝕩?"levels";⊑𝕩}(»(<"--levels")⊸⍷)⊸/a
|
||||
}
|
||||
|
||||
ansi.InitTerm @
|
||||
clear←""
|
||||
g←Game "levels"‿" λ$⊕⭍#/\-|+<>^v"‿" λ$⊕⭍#/\-|+<>^v"‿⟨ansi.defaultB,ansi.yellow,ansi.cyan,ansi.red⟩
|
||||
g←Game opts.levels‿opts.chars‿opts.fchars‿⟨ansi.defaultB,ansi.yellow,ansi.cyan,ansi.red⟩
|
||||
{𝕤 # Loop until the user wins
|
||||
•Out clear∾ansi.cursor.origin
|
||||
clear↩""
|
||||
|
@ -25,10 +33,9 @@ g←Game "levels"‿" λ$⊕⭍#/\-|+<>^v"‿" λ$⊕⭍#/\-|+<>^v"‿⟨ansi.de
|
|||
;
|
||||
key←•term.CharB @
|
||||
{𝕤⋄g.Next ⊑("hjklaswd"=key)/∾˜⟨0‿¯1,1‿0,¯1‿0,0‿1⟩}⍟(⊑key∊"hjklaswd")@
|
||||
{𝕤⋄g.Undo @}⍟(key='u')@
|
||||
{𝕤⋄clear↩""‿ansi.clear.screen⊑˜((1⊸+>○(≠•Repr)⊢)¯1+≠g.moves)⋄g.Undo @}⍟(key='u')@
|
||||
{𝕤⋄ansi.RestoreTerm @⋄•Exit 0}⍟(key='q')@
|
||||
{𝕤⋄clear↩ansi.clear.screen⋄g.Reset @}⍟(key='r')@
|
||||
{𝕤⋄clear↩ansi.clear.screen}⍟(((1⊸+>○(⌊1+10⋆⁼1⌈⊢)⊢)¯1+≠g.moves)∧key='u')@
|
||||
}•_While_{𝕤⋄g.Over @}@
|
||||
•Out "Well played, you win!"
|
||||
ansi.RestoreTerm @
|
||||
|
|
Loading…
Reference in New Issue