diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-11-10 16:48:42 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-11-10 16:48:42 -0800 |
commit | 8dcf08565d8e757b791387049f7ff852910a50c9 (patch) | |
tree | 428406a27d95a4b1190f93fe5e966af5cfb2fbb8 | |
parent | 0344a4c9a1317462500a6569eaf48f04f5b3136e (diff) | |
download | teliva-8dcf08565d8e757b791387049f7ff852910a50c9.tar.gz |
main function for other apps besides life.teliva
-rw-r--r-- | counter.teliva | 22 | ||||
-rw-r--r-- | hanoi.lua | 47 | ||||
-rw-r--r-- | hanoi.teliva | 37 | ||||
-rw-r--r-- | life.teliva | 1 |
4 files changed, 56 insertions, 51 deletions
diff --git a/counter.teliva b/counter.teliva index 7331d34..5588a2f 100644 --- a/counter.teliva +++ b/counter.teliva @@ -1,8 +1,8 @@ -local curses = require "curses" +window = curses.stdscr() n = 0 -local function render(window) +function render(window) window:clear() window:attron(curses.A_BOLD) window:attron(curses.color_pair(6)) @@ -14,19 +14,21 @@ local function render(window) end menu = {Enter="increment"} -local function update(window) +function update(window) local key = curses.getch() if key == 10 then n = n+1 end end -local window = curses.stdscr() -for i=1,7 do - curses.init_pair(i, 0, i) -end +function main() + for i=1,7 do + curses.init_pair(i, 0, i) + end -while true do - render(window) - update(window) + while true do + render(window) + update(window) + end end +main() diff --git a/hanoi.lua b/hanoi.lua index a715fe5..78cf1c5 100644 --- a/hanoi.lua +++ b/hanoi.lua @@ -1,8 +1,10 @@ -local curses = require "curses" +curses = require "curses" + +window = curses.initscr() tower = {{6, 5, 4, 3, 2}, {}, {}} -local function len(array) +function len(array) local result = 0 for k in pairs(array) do result = result+1 @@ -10,22 +12,22 @@ local function len(array) return result end -local function pop(array) +function pop(array) return table.remove(array) end -local function lines(window) +function lines(window) local lines, cols = window:getmaxyx() return lines end -local function cols(window) +function cols(window) local lines, cols = window:getmaxyx() return cols end -local function render_disk(window, line, col, size) +function render_disk(window, line, col, size) col = col-size+1 for i=1,size do window:attron(curses.color_pair(size)) @@ -35,7 +37,7 @@ local function render_disk(window, line, col, size) end end -local function render_tower(window, line, col, tower_index, tower) +function render_tower(window, line, col, tower_index, tower) window:attron(curses.A_BOLD) window:mvaddch(line+2, col, string.char(96+tower_index)) window:attroff(curses.A_BOLD) @@ -54,7 +56,7 @@ local function render_tower(window, line, col, tower_index, tower) end end -local function render(window) +function render(window) window:clear() local lines, cols = window:getmaxyx() local line = math.floor(lines/2) @@ -66,12 +68,12 @@ local function render(window) end -local function make_move(from, to) +function make_move(from, to) local disk = pop(tower[from]) table.insert(tower[to], disk) end -local function update(window) +function update(window) window:mvaddstr(lines(window)-2, 5, "tower to remove top disk from? ") local from = string.byte(curses.getch()) - 96 window:mvaddstr(lines(window)-1, 5, "tower to stack it on? ") @@ -80,17 +82,18 @@ local function update(window) end -window = curses.initscr() -curses.start_color() -curses.use_default_colors() -for i=1,7 do - curses.init_pair(i, 0, i) -end - -while true do - render(window) - update(window) -end +function main() + curses.start_color() + curses.use_default_colors() + for i=1,7 do + curses.init_pair(i, 0, i) + end -curses.endwin() + while true do + render(window) + update(window) + end + curses.endwin() +end +main() diff --git a/hanoi.teliva b/hanoi.teliva index 47fde20..1277e36 100644 --- a/hanoi.teliva +++ b/hanoi.teliva @@ -1,8 +1,8 @@ -local curses = require "curses" +window = curses.stdscr() tower = {{6, 5, 4, 3, 2}, {}, {}} -local function len(array) +function len(array) local result = 0 for k in pairs(array) do result = result+1 @@ -10,22 +10,22 @@ local function len(array) return result end -local function pop(array) +function pop(array) return table.remove(array) end -local function lines(window) +function lines(window) local lines, cols = window:getmaxyx() return lines end -local function cols(window) +function cols(window) local lines, cols = window:getmaxyx() return cols end -local function render_disk(window, line, col, size) +function render_disk(window, line, col, size) col = col-size+1 for i=1,size do window:attron(curses.color_pair(size)) @@ -35,7 +35,7 @@ local function render_disk(window, line, col, size) end end -local function render_tower(window, line, col, tower_index, tower) +function render_tower(window, line, col, tower_index, tower) window:attron(curses.A_BOLD) window:mvaddch(line+2, col, string.char(96+tower_index)) window:attroff(curses.A_BOLD) @@ -54,7 +54,7 @@ local function render_tower(window, line, col, tower_index, tower) end end -local function render(window) +function render(window) window:clear() local lines, cols = window:getmaxyx() local line = math.floor(lines/2) @@ -66,12 +66,12 @@ local function render(window) end -local function make_move(from, to) +function make_move(from, to) local disk = pop(tower[from]) table.insert(tower[to], disk) end -local function update(window) +function update(window) window:mvaddstr(lines(window)-2, 5, "tower to remove top disk from? ") local from = curses.getch() - 96 window:mvaddstr(lines(window)-1, 5, "tower to stack it on? ") @@ -80,13 +80,14 @@ local function update(window) end -local window = curses.stdscr() -for i=1,7 do - curses.init_pair(i, 0, i) -end +function main() + for i=1,7 do + curses.init_pair(i, 0, i) + end -while true do - render(window) - update(window) + while true do + render(window) + update(window) + end end - +main() diff --git a/life.teliva b/life.teliva index 9a1ff23..5326f12 100644 --- a/life.teliva +++ b/life.teliva @@ -1,5 +1,4 @@ window = curses.stdscr() - -- animation-based app window:nodelay(true) |