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"
|
⟨ansi⟩←•Import "ansi.bqn"
|
||||||
⟨Game⟩←•Import "logic.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 @
|
ansi.InitTerm @
|
||||||
clear←""
|
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
|
{𝕤 # Loop until the user wins
|
||||||
•Out clear∾ansi.cursor.origin
|
•Out clear∾ansi.cursor.origin
|
||||||
clear↩""
|
clear↩""
|
||||||
|
@ -25,10 +33,9 @@ g←Game "levels"‿" λ$⊕⭍#/\-|+<>^v"‿" λ$⊕⭍#/\-|+<>^v"‿⟨ansi.de
|
||||||
;
|
;
|
||||||
key←•term.CharB @
|
key←•term.CharB @
|
||||||
{𝕤⋄g.Next ⊑("hjklaswd"=key)/∾˜⟨0‿¯1,1‿0,¯1‿0,0‿1⟩}⍟(⊑key∊"hjklaswd")@
|
{𝕤⋄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')@
|
{𝕤⋄ansi.RestoreTerm @⋄•Exit 0}⍟(key='q')@
|
||||||
{𝕤⋄clear↩ansi.clear.screen⋄g.Reset @}⍟(key='r')@
|
{𝕤⋄clear↩ansi.clear.screen⋄g.Reset @}⍟(key='r')@
|
||||||
{𝕤⋄clear↩ansi.clear.screen}⍟(((1⊸+>○(⌊1+10⋆⁼1⌈⊢)⊢)¯1+≠g.moves)∧key='u')@
|
|
||||||
}•_While_{𝕤⋄g.Over @}@
|
}•_While_{𝕤⋄g.Over @}@
|
||||||
•Out "Well played, you win!"
|
•Out "Well played, you win!"
|
||||||
ansi.RestoreTerm @
|
ansi.RestoreTerm @
|
||||||
|
|
Loading…
Reference in New Issue