diff --git a/arc.bqn b/arc.bqn index 3750ae0..d1806aa 100755 --- a/arc.bqn +++ b/arc.bqn @@ -7,25 +7,22 @@ opts←{ a←•args + _optl_←{≠◶⟨𝔾,𝔽⊑⟩ (»a∊𝕩)/a} + _opt_←{ 𝔽_optl_𝔾 ⋈𝕩} {𝕤 •Out "Usage: "∾•name∾" [OPTION]... --help,-h: Display this help message --levels,-l FILE: load levels from FILE --chars,-c STRING: Characters to display for each game object, needs to have length 15 --fchars,-f STRING: Characters to represent each game object in the levels file, needs to have length 15 - --start,-s N: Start directly at level number N - " + --start,-s N: Start directly at level number N" •Exit 0 - }⍟((∨´"-h"<⊸⍷a)∨(∨´"--help"<⊸⍷a)) @ + }⍟∨´"-h"‿"--help"∊a - c⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--chars")⊸⍷)⊸/a - f⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--fchars")⊸⍷)⊸/a - chars⇐{0=≠𝕩?c;⊑𝕩}(»(<"-c")⊸⍷)⊸/a - fchars⇐{0=≠𝕩?f;⊑𝕩}(»(<"-f")⊸⍷)⊸/a - l←{0=≠𝕩?"levels";⊑𝕩}(»(<"--levels")⊸⍷)⊸/a - levels⇐{0=≠𝕩?l;⊑𝕩}(»(<"-l")⊸⍷)⊸/a - s⇐{0=≠𝕩?1;1⌈⊑𝕩}•BQN¨⎊{𝕊: •Out "Invalid starting level number" ⋄ •Exit 1}(»(<"-s")⊸⍷)⊸/a - n⇐{0=≠𝕩?s;1⌈⊑𝕩}•BQN¨⎊{𝕊: •Out "Invalid starting level number" ⋄ •Exit 1}(»(<"--start")⊸⍷)⊸/a + chars ⇐ ⊢_optl_" λ$⊕⭍#/\-|+<>^v" "-c"‿"--chars" + fchars⇐ ⊢_optl_" λ$⊕⭍#/\-|+<>^v" "-f"‿"--fchars" + levels⇐ ⊢_optl_"levels" "-l"‿"--levels" + n⇐{1⌈•BQN⎊{𝕊: •Out "Invalid starting level number" ⋄ •Exit 1} 𝕩}_optl_ 1 "-s"‿"--start" } g←Game⎊{𝕊: •Out •CurrentError @ ⋄ •Exit 1} opts.n‿opts.levels‿opts.chars‿opts.fchars‿⟨ansi.defaultB,ansi.yellow,ansi.cyan,ansi.red⟩