예제 #1
0
파일: main.py 프로젝트: krieghan/spelunker
 def run(self):
     self.player = Player(name='Player')
     
     createRooms()
     createAgents()
     createItems()
     fillContainers()
     entityNouns = [x.lower() for x in self.getEntityNames()]
     dictionary.get('nouns').extend(entityNouns)
     interpreter = Interpreter(dictionary=dictionary,
                               thesaurus=thesaurus)
     
     self.player.changeOwner(Room.getRoom('Entrance'))
     print self.player.currentOwner.getDescription()
     
     while(True):
         actionText = raw_input('>')
         
         try:
             sentence = interpreter.evaluate(actionText)
             action = Action(sentence=sentence,
                             player=self.player)
             succeeded = action.act()
             if not succeeded:
                 raise CouldNotInterpret('I understood "%s", but did not know what to do with it.' % actionText)
         except DenyInput, e:
             print str(e)
             continue
         except PlayerDeath:
             print "You have died"
             sys.exit()
예제 #2
0
파일: pond.py 프로젝트: krieghan/spelunker
 def handleReceiveThrow(self,
                        throwingAgent,
                        itemBeingThrown):
     inPondRoom = Room.getRoom('In the Pond')
     itemBeingThrown.changeOwner(inPondRoom)
     print 'The %s hits the surface of the pond and disappears underneath the surface.' %\
         itemBeingThrown.getDisplayNameWithDefiniteArticle()
예제 #3
0
def fillContainers():
    wall = Item.getItem('Wall')
    pathToTown = Item.getItem('Path To Town')
    
    player = Agent.getAgent('Player')
    player.addEntity(Item.getItem('Note from Unknown Party'))
    
    table = Item.getItem('Table')
    sunlightRoom = Room.getRoom('Sunlight Room')
    sunlightRoom.addEntity(Item.getItem('Note from Adventurer'))
    sunlightRoom.addEntity(table)
    sunlightRoom.addEntity(wall)
    table.addEntity(Item.getItem('Apple'))
    table.addEntity(Item.getItem('Paper'))
    table.addEntity(Item.getItem('Pencil'))
    
    sack = Item.getItem('Canvas Sack')
    entrance = Room.getRoom('Entrance')
    entrance.addEntity(pathToTown)
    entrance.addEntity(wall)
    entrance.addEntity(sack)
    sack.addEntity(Item.getItem('Dagger'))
    
    pathToTownLocation = Room.getRoom('North Of Town')
    pathToTownLocation.addEntity(Item.getItem('Rock'))
    pathToTownLocation.addEntity(pathToTown)
    
    townGate = Room.getRoom('Town Gate')
    townGate.addEntity(Item.getItem('Rope'))
    
    wolfDen = Room.getRoom('Wolf Den')
    wolfDen.addEntity(Agent.getAgent('Wolf'))
    wolfDen.addEntity(Item.getItem('Blue Key'))
    
    townPlaza = Room.getRoom('Town Plaza')
    townPlaza.addEntity(Agent.getAgent('Dark Henry'))    
    
    pond = Room.getRoom('Pond')
    tree = Item.getItem('Tree')
    pond.addEntity(tree)
    tree.addEntity(Item.getItem('Acorn'))
    pond.addEntity(Item.getItem('Pond'))
    
    darkRoom = Room.getRoom('Dark Room')
    darkRoom.addEntity(Item.getItem('Crate'))
예제 #4
0
파일: main.py 프로젝트: krieghan/spelunker
 def getEntityNames(self):
     return Agent.getNames() + Room.getNames() + Item.getNames()
예제 #5
0
파일: pond.py 프로젝트: krieghan/spelunker
 def handleSwim(self,
                swimmingAgent):
     inPondRoom = Room.getRoom('In the Pond')
     swimmingAgent.changeOwner(inPondRoom)
     print inPondRoom.getDescription()