well i have got some things to work, thanks for the help.
at this point i am just making things worse so thats it for tonight.
any comments, suggestions, bug fixes, improvements, or ideas
on how my program can add to the quality of all our lives are,
as always, most greatly appreciated.
 
 
import sys
import string
 
world = {}
 
class Room:
    def __init__(self,coords):
        self.contents = []
        self.name = ''
        self.coords = coords
        world[tuple(coords)] = self
        self.exits = {}
    def nextdoor(self,direction):
        if direction == 'n':
            nextdoor =  (self.coords[0], self.coords[1] + 1)
            return list(nextdoor)
        elif direction == 's':
            nextdoor =  list((self.coords[0], self.coords[1] - 1))
            return nextdoor
        elif direction == 'e':
            nextdoor =  list((self.coords[0] +1, self.coords[1]))
            return nextdoor
        elif direction == 'w':
            nextdoor =  (self.coords[0] -1, self.coords[1])
            return list(nextdoor)
   
 
class Player:
    def __init__(self,name):
        self.name = name
        self.location = None
        self.inventory = []
        self.wielded = None
    def look(self):
        print self.location.name
 
    def move(self,direction):
        if self.location.exits.has_key(direction):
            self.location = self.location.exits[direction]
   
    def wield(self,what):
        self.wielded = what
    def wear(self,what):
        pass
    def take(self,what):
        pass
    def drop(self,what):
        pass
    def dig(self,direction):
        target = tuple(self.location.nextdoor(direction))
        print target
        if self.location.exits.has_key(target):
            print 'there is already an exit to that room'
        elif world.has_key(target):
            print 'already a room there, attempt to make exits'
            self.location.exits[direction] = Room(target)
           
        else:
            world[target]=Room(target)
            self.location.exits[direction] = Room(target)
           
    def do(self):
        cmd = string.split(raw_input('>'))
        verb = cmd[0]
        if len(cmd) > 1:
            target = cmd[1]
       
        if verb == 'l':
            self.look()
        elif verb in ['n','s','e','w']:          
            self.move(cmd)
        elif verb == 'quit':
            sys.exit()
        elif verb == 'i':
            for a in self.inventory:
                print a.name
        elif verb == 'dig':
            self.dig(target)
        else:
            print 'what?'
 
class Thing:
    def __init__(self,name):
        self.name = name
 
 
 
       
p = Player('david')
room1 = Room([0,0])
room1.name = 'startroom'
p.location = room1
sword = Thing('sword')
hat = Thing('hat')
p.inventory.append(sword)
p.inventory.append(hat)
while 1:
    p.do()
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to