From dd28c6358240d9ba8287d90dcdb29cbaf25691e2 Mon Sep 17 00:00:00 2001 From: luxick Date: Tue, 25 Aug 2015 12:41:37 +0200 Subject: [PATCH] bug fix: program should no longer crash when list is longer than terminal window --- test.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/test.py b/test.py index 8be4937..b390943 100644 --- a/test.py +++ b/test.py @@ -20,24 +20,30 @@ king = Kinggotchi() for n in range(0, 10): king.add_village(Mayorgotchi(make_list(startnr))) -screen = curses.initscr() +stdscr = curses.initscr() curses.noecho() curses.curs_set(0) -screen.keypad(1) -screen.nodelay(1) +stdscr.keypad(1) +stdscr.nodelay(1) + +height,width = stdscr.getmaxyx() +win = curses.newpad(16383, width) while True: - screen.move(0,0) - screen.addstr('Simulation running. Press [q] to exit.\n') - screen.addstr('----------------------After '+str(ticks)+' ticks------------------------------\n') - screen.addstr(king.show_kingdom()) - king.step() - ticks += 1 + win.move(0,0) + win.addstr(0,0,'Simulation running. Press [q] to exit.\n') + win.addstr(1,0,'----------------------After '+str(ticks)+' ticks------------------------------\n') + win.addstr(3,0,king.show_kingdom()) + king.step() + ticks += 1 + win.clrtoeol() + win.clrtobot() + win.refresh(0, 0, 0, 0, height-1, width-1) + + key = stdscr.getch() + if key == ord('q'): + break + elif key < 0: + time.sleep(ticklenght) - screen.clrtobot() - key = screen.getch() - if key == ord('q'): - break - elif key < 0: - time.sleep(ticklenght) curses.endwin()