Auto bis Tal.
This commit is contained in:
@@ -1,8 +1,48 @@
|
|||||||
import logging
|
import logging
|
||||||
|
import inspect
|
||||||
|
|
||||||
class ActionBasics:
|
class ActionBasics:
|
||||||
|
|
||||||
def __init__(self,world):
|
def __init__(self,world):
|
||||||
self.world = world
|
self.world = world
|
||||||
|
|
||||||
|
def debug(self, method, text):
|
||||||
|
logging.debug(f'ActionBasics#{method}: {text}')
|
||||||
|
|
||||||
|
def insInventar(self, item):
|
||||||
|
self.debug('insInventar()',f'neu ins Inventar: {item.name}')
|
||||||
|
self.world.inventar[item.id] = item
|
||||||
|
|
||||||
|
def setFehler(self,text):
|
||||||
|
self.world.fehler =text
|
||||||
|
|
||||||
|
def clearFehler(self):
|
||||||
|
self.world.fehler = ''
|
||||||
|
|
||||||
|
def moveItemVonRaumNachInventar(self,item):
|
||||||
|
self.debug('moveItemVonRaumNachInventar()',f'entferne aus aktuellen Raum {item.name}')
|
||||||
|
del self.world.aktuellerRaum.items[item.id]
|
||||||
|
self.debug('moveItemVonRaumNachInventar()',f'ins Inventar {item.name}')
|
||||||
|
self.insInventar(item)
|
||||||
|
|
||||||
|
def isItemAndAktRaum(self,item, itemid, raumid):
|
||||||
|
return self.isItem(item, itemid) and self.isAktuellerRaum(raumid)
|
||||||
|
|
||||||
|
def isItem(self, item, itemid):
|
||||||
|
return item.id == itemid
|
||||||
|
|
||||||
|
def macheWegFrei(self, richtung, raumid):
|
||||||
|
self.world.aktuellerRaum.ausgaenge[richtung] = raumid
|
||||||
|
|
||||||
|
def findItemInAktuellerRaumById(self, itemid):
|
||||||
|
for itemid in self.world.aktuellerRaum.items:
|
||||||
|
raum = self.world.aktuellerRaum
|
||||||
|
|
||||||
|
item = self.world.aktuellerRaum.items[itemid]
|
||||||
|
self.debug('findRaumItemById()',f'{itemid} -{item.id}')
|
||||||
|
if item.id == itemid:
|
||||||
|
return item
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@@ -277,10 +277,33 @@ class ActionModul(ActionBasics):
|
|||||||
def wirf(self,parsedCommand):
|
def wirf(self,parsedCommand):
|
||||||
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
||||||
|
|
||||||
|
if item == None:
|
||||||
|
self.setFehler('Das besitzt du nicht.')
|
||||||
|
return
|
||||||
|
|
||||||
if self.isItemAndAktRaum(item, self.world.ITEM_SEIL,self.world.RAUM_BAUM):
|
if self.isItemAndAktRaum(item, self.world.ITEM_SEIL,self.world.RAUM_BAUM):
|
||||||
self.world.printText('seilwurf')
|
self.world.printText('seilwurf')
|
||||||
self.world.aktuellerRaum.richtungen[self.world.RAUF] = self.world.RAUM_BAUMHAUS
|
self.world.aktuellerRaum.richtungen[self.world.RAUF] = self.world.RAUM_BAUMHAUS
|
||||||
self.ausDemInventar(item)
|
self.ausDemInventar(item)
|
||||||
|
elif self.isAktuellerRaum(self.world.RAUM_BOHNENRANKE):
|
||||||
|
if self.isItem(item, self.world.ITEM_MAUS):
|
||||||
|
|
||||||
|
elefant = self.findItemInAktuellerRaumById(self.world.ITEM_ELEFANT)
|
||||||
|
|
||||||
|
logging.debug(f'Elefant - {elefant}')
|
||||||
|
if elefant != None:
|
||||||
|
self.world.printText('mauswurf')
|
||||||
|
self.ausDemInventar(item)
|
||||||
|
self.macheWegFrei(self.world.SUED,self.world.RAUM_PFAD)
|
||||||
|
del self.world.aktuellerRaum.items[elefant.id]
|
||||||
|
else:
|
||||||
|
self.setFehler('Der Elefant ist schon geflohen.')
|
||||||
|
else:
|
||||||
|
self.setFehler('Das besitzt du nicht')
|
||||||
|
else:
|
||||||
|
self.verliere(parsedCommand)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def klettere(self, parsedCommand):
|
def klettere(self, parsedCommand):
|
||||||
@@ -292,7 +315,7 @@ class ActionModul(ActionBasics):
|
|||||||
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
||||||
self.rauf()
|
self.rauf()
|
||||||
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
||||||
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE):
|
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE)
|
||||||
|
|
||||||
if ranke.zustand == Gegenstand.GROSS:
|
if ranke.zustand == Gegenstand.GROSS:
|
||||||
self.ac.rauf()
|
self.ac.rauf()
|
||||||
@@ -301,15 +324,8 @@ class ActionModul(ActionBasics):
|
|||||||
else:
|
else:
|
||||||
self.setFehler('Eine Leiter sehe ich hier nicht.')
|
self.setFehler('Eine Leiter sehe ich hier nicht.')
|
||||||
|
|
||||||
def insInventar(self, item):
|
|
||||||
logging.debug(f'neu ins Inventar: {item.name}')
|
|
||||||
self.world.inventar[item.id] = item
|
|
||||||
|
|
||||||
def moveItemVonRaumNachInventar(self,item):
|
|
||||||
logging.debug(f'moveItemVonRaumNachInventar(): entferne aus aktuellen Raum {item.name}')
|
|
||||||
del self.world.aktuellerRaum.items[item.id]
|
|
||||||
logging.debug(f'moveItemVonRaumNachInventar(): ins Inventar {item.name}')
|
|
||||||
self.insInventar(item)
|
|
||||||
|
|
||||||
def nimm(self,parsedCommand):
|
def nimm(self,parsedCommand):
|
||||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||||
@@ -354,11 +370,6 @@ class ActionModul(ActionBasics):
|
|||||||
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
||||||
|
|
||||||
|
|
||||||
def isItemAndAktRaum(self,item, itemid, raumid):
|
|
||||||
return self.isItem(item, itemid) and self.isAktuellerRaum(raumid)
|
|
||||||
|
|
||||||
def isItem(self, item, itemid):
|
|
||||||
return item.id == itemid
|
|
||||||
|
|
||||||
def sprich(self,parsedCommand):
|
def sprich(self,parsedCommand):
|
||||||
geist = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
|
geist = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
|
||||||
|
@@ -151,6 +151,53 @@ class TestModule:
|
|||||||
self.ac.sued()
|
self.ac.sued()
|
||||||
self.schrittzaehler += 1
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
# Kleines Feld
|
||||||
|
self.ac.sued()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
pcmd = self.parseInput('nimm Maus')
|
||||||
|
self.ac.nimm(pcmd)
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
self.ac.nord()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
# Auf die Wiese
|
||||||
|
self.ac.west()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
|
||||||
|
# Aufs Brachland
|
||||||
|
self.ac.sued()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
pcmd = self.parseInput('leere Krug')
|
||||||
|
self.ac.leere(pcmd)
|
||||||
|
self.ac.clearFehler()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
# Wiese
|
||||||
|
self.ac.nord()
|
||||||
|
|
||||||
|
# Feld
|
||||||
|
self.ac.ost()
|
||||||
|
|
||||||
|
# Bach
|
||||||
|
self.ac.nord()
|
||||||
|
|
||||||
|
# Teich
|
||||||
|
|
||||||
|
self.ac.ost()
|
||||||
|
pcmd = self.parseInput('fuelle Krug')
|
||||||
|
|
||||||
|
# zum Bach
|
||||||
|
self.ac.west()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
|
||||||
|
#Aufs Feld
|
||||||
|
self.ac.sued()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
# Auf die Wiese
|
# Auf die Wiese
|
||||||
self.ac.west()
|
self.ac.west()
|
||||||
@@ -167,6 +214,28 @@ class TestModule:
|
|||||||
|
|
||||||
self.world.schrittzaehler = self.schrittzaehler
|
self.world.schrittzaehler = self.schrittzaehler
|
||||||
|
|
||||||
|
def testTal(self):
|
||||||
|
|
||||||
|
self.testRanke()
|
||||||
|
|
||||||
|
self.ac.rauf()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
pcmd = self.parseInput('wirf Maus')
|
||||||
|
self.ac.wirf(pcmd)
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
#Pfad
|
||||||
|
self.ac.sued()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
#südlicherPfad
|
||||||
|
self.ac.sued()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
# östlicher Pfad
|
||||||
|
self.ac.ost()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
7
tomb.py
7
tomb.py
@@ -66,6 +66,8 @@ def verarbeiteBefehl(parsedCommand):
|
|||||||
actionmodul.leere(parsedCommand)
|
actionmodul.leere(parsedCommand)
|
||||||
elif id == '27':
|
elif id == '27':
|
||||||
actionmodul.fuelle(parsedCommand)
|
actionmodul.fuelle(parsedCommand)
|
||||||
|
elif id == '28':
|
||||||
|
actionmodul.wirf(parsedCommand)
|
||||||
elif id == '-1':
|
elif id == '-1':
|
||||||
world.fehler = 'Ich verstehe diesen Befehl nicht'
|
world.fehler = 'Ich verstehe diesen Befehl nicht'
|
||||||
else:
|
else:
|
||||||
@@ -120,9 +122,14 @@ def inputLoop(stdscr):
|
|||||||
testmodul.testTeich()
|
testmodul.testTeich()
|
||||||
elif debugcommand[1] == 'ranke':
|
elif debugcommand[1] == 'ranke':
|
||||||
testmodul.testRanke()
|
testmodul.testRanke()
|
||||||
|
elif debugcommand[1] == 'tal':
|
||||||
|
testmodul.testTal()
|
||||||
|
|
||||||
|
world.fehler = ''
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
actionmodul.clearFehler()
|
||||||
parsedCommand = world.parseInput(command)
|
parsedCommand = world.parseInput(command)
|
||||||
commandid = parsedCommand.commandid
|
commandid = parsedCommand.commandid
|
||||||
verarbeiteBefehl(parsedCommand)
|
verarbeiteBefehl(parsedCommand)
|
||||||
|
@@ -102,7 +102,7 @@
|
|||||||
<ausgang dir='Runter' nachRaum= '14' />
|
<ausgang dir='Runter' nachRaum= '14' />
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
Du stehst auf der Spitze der Bohnenranke.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='16' name='Pfad'>
|
<raum id='16' name='Pfad'>
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
<raum id='18' name='Tal'>
|
<raum id='18' name='Tal'>
|
||||||
<ausgang dir='West' nachRaum= '17' />
|
<ausgang dir='West' nachRaum= '17' />
|
||||||
<ausgang dir='Ost' nachRaum= '20' />
|
<ausgang dir='Ost' nachRaum= '20' />
|
||||||
<ausgang dir='Süd' nachRaum= '19' />
|
<ausgang dir='Sued' nachRaum= '19' />
|
||||||
|
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
@@ -333,5 +333,8 @@
|
|||||||
<text id='seilwurf'>
|
<text id='seilwurf'>
|
||||||
Du wirfst das Seil Richtung Baumkrone. Dort verfängt es sich so fest, dass du daran klettern kannst.
|
Du wirfst das Seil Richtung Baumkrone. Dort verfängt es sich so fest, dass du daran klettern kannst.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='mauswurf'>
|
||||||
|
Als der Elefant die Maus sieht, bekommt er einen Riesenschreck und flüchtet. Dadurch wird der Weg nach Süden frei.
|
||||||
|
</text>
|
||||||
</texte>
|
</texte>
|
||||||
</welt>
|
</welt>
|
||||||
|
Reference in New Issue
Block a user