From f7f8ec295f568313312bc4243150cb472cfe8a12 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 10 Mar 2023 00:15:37 +0900 Subject: refactor: move common stuff to internal/term package --- internal/term/draw.go | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 internal/term/draw.go (limited to 'internal/term/draw.go') diff --git a/internal/term/draw.go b/internal/term/draw.go new file mode 100644 index 0000000..c6f297f --- /dev/null +++ b/internal/term/draw.go @@ -0,0 +1,112 @@ +package term + +import ( + "github.com/gdamore/tcell/v2" +) + +type Style tcell.Style; + +var ( + BgStyle Style + FgStyle Style +) + +func init() { + BgStyle = Style(tcell.StyleDefault.Background(tcell.ColorReset).Foreground(tcell.ColorReset)) + FgStyle = Style(tcell.StyleDefault.Foreground(tcell.ColorWhite).Background(tcell.ColorOlive)) +} + +func DrawSquare(scr *Screen, xOffset, yOffset, w, h int, style Style) { + for dx := 0; dx < w; dx++ { + x := xOffset + dx + for dy := 0; dy < h; dy++ { + y := yOffset + dy + scr.scr.SetContent(x, y, ' ', nil, tcell.Style(style)) + } + } +} + +func DrawNumber(scr *Screen, n, xOffset, yOffset, squareW, squareH int, style Style) { + defs := [...][15]bool{ + { + true, true, true, + true, false, true, + true, false, true, + true, false, true, + true, true, true, + }, + { + false, false, true, + false, false, true, + false, false, true, + false, false, true, + false, false, true, + }, + { + true, true, true, + false, false, true, + true, true, true, + true, false, false, + true, true, true, + }, + { + true, true, true, + false, false, true, + true, true, true, + false, false, true, + true, true, true, + }, + { + true, false, true, + true, false, true, + true, true, true, + false, false, true, + false, false, true, + }, + { + true, true, true, + true, false, false, + true, true, true, + false, false, true, + true, true, true, + }, + { + true, true, true, + true, false, false, + true, true, true, + true, false, true, + true, true, true, + }, + { + true, true, true, + false, false, true, + false, false, true, + false, false, true, + false, false, true, + }, + { + true, true, true, + true, false, true, + true, true, true, + true, false, true, + true, true, true, + }, + { + true, true, true, + true, false, true, + true, true, true, + false, false, true, + true, true, true, + }, + } + + squares := defs[n] + for i, draw := range squares { + if !draw { + continue + } + x := i % 3 + y := i / 3 + DrawSquare(scr, xOffset+squareW*x, yOffset+squareH*y, squareW, squareH, style) + } +} -- cgit v1.2.3-70-g09d2