88 lines
2.2 KiB
Python
Executable File
88 lines
2.2 KiB
Python
Executable File
#!/usr/bin/python3
|
|
import World
|
|
import ActionModul
|
|
import signal
|
|
import sys
|
|
import logging
|
|
import curses
|
|
from curses import wrapper
|
|
|
|
def verarbeiteBefehl(parsedCommand):
|
|
id = parsedCommand.key
|
|
|
|
logging.debug(' Befehlkey: ' + id)
|
|
if id == '0':
|
|
sys.exit()
|
|
elif id == '1':
|
|
actionmodul.gehe(parsedCommand)
|
|
elif id == '2':
|
|
actionmodul.nimm(parsedCommand)
|
|
elif id == '3':
|
|
actionmodul.untersuche(parsedCommand)
|
|
elif id == '5':
|
|
actionmodul.nord()
|
|
elif id == '6':
|
|
actionmodul.ost()
|
|
elif id == '7':
|
|
actionmodul.sued()
|
|
elif id == '8':
|
|
actionmodul.west()
|
|
elif id == '9':
|
|
actionmodul.rauf()
|
|
elif id == '10':
|
|
actionmodul.runter()
|
|
elif id == '12':
|
|
actionmodul.inventar()
|
|
world.waitForCR()
|
|
elif id == '13':
|
|
actionmodul.about()
|
|
elif id == '14':
|
|
print('verliere: ' + parsedCommand.gegenstand)
|
|
actionmodul.verliere(parsedCommand)
|
|
elif id == '15':
|
|
actionmodul.warte()
|
|
elif id == '17':
|
|
actionmodul.ziehe(parsedCommand)
|
|
elif id == '19':
|
|
actionmodul.stelle(parsedCommand)
|
|
elif id == '20':
|
|
actionmodul.oeffne(parsedCommand)
|
|
elif id == '-1':
|
|
world.fehler = 'Ich verstehe diesen Befehl nicht'
|
|
else:
|
|
world.fehler = 'nicht implementierter Befehl'
|
|
|
|
def handle_SIGINT(sig,frame):
|
|
logging.debug("CTRL-C abgefangen")
|
|
sys.exit(0)
|
|
|
|
|
|
logging.basicConfig(filename='tomb.log', level=logging.DEBUG)
|
|
signal.signal(signal.SIGINT,handle_SIGINT)
|
|
world = World.World()
|
|
logging.debug('World initialisiert')
|
|
actionmodul = ActionModul.ActionModul(world)
|
|
|
|
def inputLoop(stdscr):
|
|
schrittzaehler = 0
|
|
|
|
world.stdscr = stdscr
|
|
curses.echo()
|
|
curses.init_pair(1,curses.COLOR_RED, curses.COLOR_WHITE)
|
|
curses.init_pair(2,curses.COLOR_GREEN, curses.COLOR_BLACK)
|
|
curses.init_pair(3,curses.COLOR_YELLOW, curses.COLOR_BLACK)
|
|
commandid = ''
|
|
while commandid != '0':
|
|
world.printRaum()
|
|
actionmodul.clearFehler()
|
|
stdscr.addstr(11,0,'Was nun? ')
|
|
command = stdscr.getstr(11,10,40).decode(encoding="utf-8")
|
|
command = command.rstrip()
|
|
parsedCommand = world.parseInput(command)
|
|
commandid = parsedCommand.commandid
|
|
verarbeiteBefehl(parsedCommand)
|
|
schrittzaehler = schrittzaehler +1
|
|
actionmodul.raumaction()
|
|
|
|
wrapper(inputLoop)
|