From 6c4d926d1eb6d3c9ab4ae13bdbf8d0d862383c11 Mon Sep 17 00:00:00 2001 From: Rampoina Date: Sun, 5 Mar 2023 19:11:54 +0100 Subject: [PATCH] Add missing ansi codes --- ansi.bqn | 16 ++++++++++++++++ arc.bqn | 19 ++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/ansi.bqn b/ansi.bqn index c23ea53..a12c159 100644 --- a/ansi.bqn +++ b/ansi.bqn @@ -4,4 +4,20 @@ ansi⇐{ cyan⇐e∾"[36m" yellow⇐e∾"[33m" defaultB⇐e∾"[0m" + cursor⇐{ + hide⇐e∾"[?25l" + show⇐e∾"[?25h" + origin⇐e∾"[H" + } + clear⇐{ + screen⇐e∾"[2J" + } + reset⇐e∾"[0m" + + InitTerm⇐{𝕤 + •term.RawMode 1 + •Out ansi.cursor.hide∾ansi.clear.screen∾ansi.cursor.origin + } + + RestoreTerm⇐{𝕤⋄•Out ansi.reset∾ansi.cursor.show} } diff --git a/arc.bqn b/arc.bqn index c8b1bb8..27db03f 100755 --- a/arc.bqn +++ b/arc.bqn @@ -5,14 +5,11 @@ ⟨ansi⟩←•Import "ansi.bqn" ⟨Game⟩←•Import "logic.bqn" -e←ansi.e -•term.RawMode 1 # set terminal to raw mode -•Out e∾"[?25l"∾e∾"[2J"∾e∾"[H" # Cursor to origin, hide it and clear screen +ansi.InitTerm @ clear←"" - g←Game "levels"‿" λ$⊕⭍#/\-|+<>^v"‿" λ$⊕⭍#/\-|+<>^v"‿⟨ansi.defaultB,ansi.yellow,ansi.cyan,ansi.red⟩ {𝕤 # Loop until the user wins - •Out clear∾e∾"[H" # Cursor to origin + •Out clear∾ansi.cursor.origin clear↩"" •Out "Level: "∾•Repr 1+g.currentLevel •Out ansi.yellow∾"⭍"∾ansi.defaultB∾" Power the machines (⊕) by moving the mirrors ("∾ansi.cyan∾"\/"∾ansi.defaultB∾") " @@ -22,16 +19,16 @@ g←Game "levels"‿" λ$⊕⭍#/\-|+<>^v"‿" λ$⊕⭍#/\-|+<>^v"‿⟨ansi.de g.WinLevel @ ? •Out "Good job!, press any key to continue to the next level" key←•term.CharB @ - clear↩e∾"[2J" + clear↩ansi.clear.screen g.NextLevel @ - {𝕤⋄•Out e∾"[?12l"∾e∾"[?25h"⋄•Exit 0}⍟(key='q')@ + {𝕤⋄ansi.RestoreTerm @⋄•Exit 0}⍟(key='q')@ ; key←•term.CharB @ {𝕤⋄g.Next ⊑("hjklaswd"=key)/∾˜⟨0‿¯1,1‿0,¯1‿0,0‿1⟩}⍟(⊑key∊"hjklaswd")@ {𝕤⋄g.Undo @}⍟(key='u')@ - {𝕤⋄•Out e∾"[?12l"∾e∾"[?25h"⋄•Exit 0}⍟(key='q')@ - {𝕤⋄clear↩e∾"[2J"⋄g.Reset @}⍟(key='r')@ - {𝕤⋄clear↩e∾"[2J"}⍟(((1⊸+>○(⌊1+10⋆⁼1⌈⊢)⊢)¯1+≠g.moves)∧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!" -•Out e∾"[?12l"∾e∾"[?25h" +ansi.RestoreTerm @