[Tutor] my text adventure

david din22 at earthlink.net
Sun Dec 4 03:40:05 CET 2005


sorry i forgot a subject line. i have looked at the pickle module and was able to pickle world.
but i can't figure how to restore everything. 
  ----- Original Message ----- 
  From: david 
  To: tutor at python.org 
  Sent: Saturday, December 03, 2005 8:36 PM
  Subject: [Tutor] (no subject)


  hello again. i think my dig function is working correctly now.
  any input on how to save and restore all the rooms and descriptions?
  thanks for helping.

  import sys
  import string

  world = {}

  class Room:
      def __init__(self,coords):
          self.contents = []
          self.description = ''
          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.coords
          print self.location.description

      def move(self,direction):
          type(direction)
          if self.location.exits.has_key(direction):
              self.location = self.location.exits[direction]
          else:
              print 'alas, you cannot go that way'
      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)
              world[target].exits[opdir(direction)] = self.location
          else:
              world[target]=Room(target)
              self.location.exits[direction] = Room(target)
              world[target].exits[opdir(direction)] = self.location
      def describeroom(self):
          self.location.description = raw_input('>>')
      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(verb)
          elif verb == 'quit':
              sys.exit()
          elif verb == 'i':
              for a in self.inventory:
                  print a.name
          elif verb == 'dig':
              self.dig(target)
          elif verb == 'dr':
              self.describeroom()
          else:
              print 'what?'

  class Thing:
      def __init__(self,name):
          self.name = name


  def opdir(direction):
      if direction == 'n':
          return 's'
      if direction == 's':
          return 'n'
      if direction == 'e':
          return 'w'
      if direction == 'w':
          return 'e'
      
          
  p = Player('david')
  room1 = Room([0,0])

  p.location = room1
  sword = Thing('sword')
  hat = Thing('hat')
  p.inventory.append(sword)
  p.inventory.append(hat)
  while 1:
      p.do()



------------------------------------------------------------------------------


  _______________________________________________
  Tutor maillist  -  Tutor at python.org
  http://mail.python.org/mailman/listinfo/tutor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20051203/c55777e9/attachment.html


More information about the Tutor mailing list