----- Original Message -----
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@python.org
http://mail.python.org/mailman/listinfo/tutor