Fix -h handling and fix color handling for the description text
This commit is contained in:
parent
4919a9903a
commit
f327bd29be
4
arc.bqn
4
arc.bqn
|
@ -14,7 +14,7 @@ opts←{
|
||||||
--chars STRING: Characters to display for each game object, needs to have length 15
|
--chars STRING: Characters to display for each game object, needs to have length 15
|
||||||
--fchars STRING: Characters to represent each game object in the levels file, needs to have length 15"
|
--fchars STRING: Characters to represent each game object in the levels file, needs to have length 15"
|
||||||
•Exit 0
|
•Exit 0
|
||||||
}⍟((⊑"-h"<⊸⍷a)∨⊑"--help"<⊸⍷a) @
|
}⍟((∨´"-h"<⊸⍷a)∨(∨´"--help"<⊸⍷a)) @
|
||||||
|
|
||||||
chars⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--chars")⊸⍷)⊸/a
|
chars⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--chars")⊸⍷)⊸/a
|
||||||
fchars⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--fchars")⊸⍷)⊸/a
|
fchars⇐{0=≠𝕩?" λ$⊕⭍#/\-|+<>^v";⊑𝕩}(»(<"--fchars")⊸⍷)⊸/a
|
||||||
|
@ -30,7 +30,7 @@ clear←""
|
||||||
•Out clear∾ansi.cursor.origin
|
•Out clear∾ansi.cursor.origin
|
||||||
clear↩""
|
clear↩""
|
||||||
•Out "Level: "∾•Repr 1+g.currentLevel
|
•Out "Level: "∾•Repr 1+g.currentLevel
|
||||||
•Out ansi.yellow∾"⭍"∾ansi.defaultB∾" Power the machines (⊕) by moving the mirrors ("∾ansi.cyan∾"\/"∾ansi.defaultB∾") "
|
•Out (g.Color g.pmachine)∾ansi.defaultB∾" Power the machines ("∾(g.Color g.machine)∾") by moving the mirrors ("∾(∾g.Color¨ g.mirrors)∾ansi.defaultB∾")"
|
||||||
•Out "Controls: (hjkl or wasd) to move, u to undo, r to reset level, q to quit"
|
•Out "Controls: (hjkl or wasd) to move, u to undo, r to reset level, q to quit"
|
||||||
g.Draw @
|
g.Draw @
|
||||||
•Out "Moves: "∾•Repr ¯1+≠g.moves
|
•Out "Moves: "∾•Repr ¯1+≠g.moves
|
||||||
|
|
|
@ -15,9 +15,9 @@ Game⇐{ # The Game function creates a game object
|
||||||
# Game representation:
|
# Game representation:
|
||||||
# -------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------
|
||||||
# The game has the following objects represented as consecutive integers:
|
# The game has the following objects represented as consecutive integers:
|
||||||
⟨floor,player,box,machine,pmachine,wall,lmirror,rmirror,hbeam,vbeam,xbeam,llaser,rlaser,ulaser,dlaser⟩←↕≠chars
|
⟨floor,player,box,machine,pmachine,wall,lmirror,rmirror,hbeam,vbeam,xbeam,llaser,rlaser,ulaser,dlaser⟩⇐↕≠chars
|
||||||
|
|
||||||
mirrors←lmirror‿rmirror # the mirrors to reflect
|
mirrors⇐lmirror‿rmirror # the mirrors to reflect
|
||||||
beams←hbeam‿vbeam‿xbeam # the laser beams
|
beams←hbeam‿vbeam‿xbeam # the laser beams
|
||||||
lasers←llaser‿rlaser‿ulaser‿dlaser # shot by the laser
|
lasers←llaser‿rlaser‿ulaser‿dlaser # shot by the laser
|
||||||
# Each with every possible orientation
|
# Each with every possible orientation
|
||||||
|
@ -119,8 +119,8 @@ Game⇐{ # The Game function creates a game object
|
||||||
cols (2⊑colors)¨⌾(mirrors⊸⊏)↩ # the color for the mirrors
|
cols (2⊑colors)¨⌾(mirrors⊸⊏)↩ # the color for the mirrors
|
||||||
cols (3⊑colors)¨⌾(beams⊸⊏)↩ # the color for the laser beams
|
cols (3⊑colors)¨⌾(beams⊸⊏)↩ # the color for the laser beams
|
||||||
|
|
||||||
Colorize←{𝕩∾˜cols⊑˜⊑dchars⊐𝕩} # 𝕩: character | Turn character into color+character
|
Color⇐{(𝕩⊑cols)∾𝕩⊑dchars} # 𝕩: game Object (int) | draw object with color
|
||||||
DrawLevel←{∾´¨<˘Colorize¨dchars⊏˜+´¨Shoot 𝕨 Step´ ⌽𝕩} # 𝕨 Draw 𝕩 | 𝕨: levels | 𝕩: moves | Draw the game in ASCII
|
DrawLevel←{∾´¨<˘Color¨+´¨Shoot 𝕨 Step´ ⌽𝕩} # 𝕨 Draw 𝕩 | 𝕨: levels | 𝕩: moves | Draw the game in ASCII
|
||||||
|
|
||||||
# State and state mutating functions:
|
# State and state mutating functions:
|
||||||
# -------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue