1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
from explore import Explore
import curses
from math import floor
explore = Explore(0.0025)
screen = curses.initscr()
curses.noecho() #makes keys not put text on screen
curses.cbreak() #removes buffer, allowing prog to receive control immediately
screen.keypad(True) #allows arrow keys and things to work
screen.scrollok(False) #disables scrolling
key = ''
while key != ord('q'):
dim = screen.getmaxyx()
if key in [curses.KEY_DOWN, curses.KEY_RIGHT, curses.KEY_UP, curses.KEY_LEFT]:
explore.displace(explore.interpretkey(key),(floor(dim[0]/2),floor(dim[1]/4)))
if key in [ord('.'), ord('/')]:
explore.rockmod((floor(dim[0]/2), floor(dim[1]/4)), key == ord('/'))
if key in [ord('s'), ord('l')]:
screen.addstr(dim[0]-1, 0, 'File:'+' '*(dim[1]-6))
curses.echo()
file = screen.getstr(dim[0]-1, 6)
curses.noecho()
if key == ord('s'):
explore.save(file)
else:
screen.clear()
explore.load(file)
if key == ord('\\'):
explore.setportal((floor(dim[0]/2), floor(dim[1]/4)))
screen.addstr(0, 0, explore.get_area(dim))
screen.addstr(dim[0]-1, 0, str(explore.getinv()))
screen.refresh()
key = screen.getch(floor(dim[0]/2), 2*floor(dim[1]/4))
screen.scrollok(True)
curses.nocbreak()
screen.keypad(False)
curses.echo()
curses.endwin() #finished program; resets to normal
|