#! /usr/bin/python from field import Field import curses import logging from curses import wrapper from SourceGenerator import SourceGenerator logging.basicConfig( format='%(asctime)s [%(levelname)s] %(funcName)s: %(message)s', filename='r4.log', level=logging.DEBUG) field = Field() def inputLoop(stdscr): exitPrg = False curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_CYAN) curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) curses.noecho() curses.cbreak() while not exitPrg: field.print_field(stdscr) key = stdscr.getkey() field.message = str(key) match key: case 'q': exitPrg = True case 'g': generator = SourceGenerator() source = generator.generate_source(field) logging.debug(f'source={source}') case ' ': field.togglePixel() case '^L': field.print_field(stdscr) case 'KEY_DOWN': if field.cursor[0] < len(field.frame)-1: newcursor = (field.cursor[0] +1,field.cursor[1]) field.cursor = newcursor case 'KEY_RIGHT': curline = field.frame[field.cursor[0]] if field.cursor[1] < len(curline)-1: newcursor = (field.cursor[0],field.cursor[1]+1) field.cursor = newcursor case 'KEY_LEFT': curline = field.frame[field.cursor[0]] if field.cursor[1] > 0: newcursor = (field.cursor[0],field.cursor[1]-1) field.cursor = newcursor case 'KEY_UP': curline = field.frame[field.cursor[0]] if field.cursor[0] > 0: newcursor = (field.cursor[0] -1,field.cursor[1]) field.cursor = newcursor def main(): wrapper(inputLoop) if __name__ == '__main__': main()