Auto bis Tal.
This commit is contained in:
@@ -1,8 +1,48 @@
|
||||
import logging
|
||||
import inspect
|
||||
|
||||
class ActionBasics:
|
||||
|
||||
def __init__(self,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):
|
||||
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):
|
||||
self.world.printText('seilwurf')
|
||||
self.world.aktuellerRaum.richtungen[self.world.RAUF] = self.world.RAUM_BAUMHAUS
|
||||
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):
|
||||
@@ -292,7 +315,7 @@ class ActionModul(ActionBasics):
|
||||
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
||||
self.rauf()
|
||||
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:
|
||||
self.ac.rauf()
|
||||
@@ -301,15 +324,8 @@ class ActionModul(ActionBasics):
|
||||
else:
|
||||
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):
|
||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||
@@ -354,11 +370,6 @@ class ActionModul(ActionBasics):
|
||||
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):
|
||||
geist = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
|
||||
|
@@ -151,6 +151,53 @@ class TestModule:
|
||||
self.ac.sued()
|
||||
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
|
||||
self.ac.west()
|
||||
@@ -167,6 +214,28 @@ class TestModule:
|
||||
|
||||
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)
|
||||
elif id == '27':
|
||||
actionmodul.fuelle(parsedCommand)
|
||||
elif id == '28':
|
||||
actionmodul.wirf(parsedCommand)
|
||||
elif id == '-1':
|
||||
world.fehler = 'Ich verstehe diesen Befehl nicht'
|
||||
else:
|
||||
@@ -120,9 +122,14 @@ def inputLoop(stdscr):
|
||||
testmodul.testTeich()
|
||||
elif debugcommand[1] == 'ranke':
|
||||
testmodul.testRanke()
|
||||
elif debugcommand[1] == 'tal':
|
||||
testmodul.testTal()
|
||||
|
||||
world.fehler = ''
|
||||
|
||||
|
||||
else:
|
||||
actionmodul.clearFehler()
|
||||
parsedCommand = world.parseInput(command)
|
||||
commandid = parsedCommand.commandid
|
||||
verarbeiteBefehl(parsedCommand)
|
||||
|
@@ -102,7 +102,7 @@
|
||||
<ausgang dir='Runter' nachRaum= '14' />
|
||||
|
||||
<beschreibung>
|
||||
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
||||
Du stehst auf der Spitze der Bohnenranke.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='16' name='Pfad'>
|
||||
@@ -125,7 +125,7 @@
|
||||
<raum id='18' name='Tal'>
|
||||
<ausgang dir='West' nachRaum= '17' />
|
||||
<ausgang dir='Ost' nachRaum= '20' />
|
||||
<ausgang dir='Süd' nachRaum= '19' />
|
||||
<ausgang dir='Sued' nachRaum= '19' />
|
||||
|
||||
|
||||
<beschreibung>
|
||||
@@ -333,5 +333,8 @@
|
||||
<text id='seilwurf'>
|
||||
Du wirfst das Seil Richtung Baumkrone. Dort verfängt es sich so fest, dass du daran klettern kannst.
|
||||
</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>
|
||||
</welt>
|
||||
|
Reference in New Issue
Block a user