bhaaluu wrote: > # N S E W U D T > travelTable=[[0,2,0,0,0,0,0], # ROOM 1 > [1,3,3,0,0,0,0], # ROOM 2 It is good to finally see that you are building an adventure game.
Consider creating a instance of a Room class for each room and saving them in a collection such as a list. This will give you much more flexibility as your game grows. Inevitably I wound up doing a bunch of things more "Pythonically" so there may be stuff here you don't relate to yet. But is is all worth studying and will save you hours of headache later. ----------------------------- code ----------------------------- import random class Room: roomNo = 0 def __init__(self, destinations, updatable=True): Room.roomNo += 1 self.roomNo = Room.roomNo self.destinations = destinations # store treasure apaart from destinations self.treasure = 0 # add intial treasure self.updatable = updatable # may have the treasure updated def updateTreasure(self, treasure): self.treasure = treasure def __repr__(self): return " %s:%s" % (self.roomNo, self.treasure) rooms = [ Room([0,2,0,0,0,0]), # ROOM 1 Room([1,3,3,0,0,0]), # ROOM 2 Room([2,0,5,2,0,0]), # ROOM 3 Room([0,5,0,0,0,0]), # ROOM 4 Room([4,0,0,3,5,13]), # ROOM 5 Room([0,0,1,0,0,0], False), # ROOM 6 flagged as not updatable Room([0,8,0,0,0,0]), # ROOM 7 Room([7,0,0,0,0,0]), # ROOM 8 Room([0,9,0,0,0,8]), # ROOM 9 # etc for the rest of the rooms - ] # note I omitted the initial treasure value since it is always 0 # I modified the last for statement to account for only 9 rooms # use random.sample to create random subsets of values and rooms # - eliminates all the loops and tests # note this ensures no duplicate treasures (do you want that?) # create list of 8 random treasure values values = random.sample(range(10,110),4) + random.sample(range(-4, 0),4) # create list of 8 randomly selected updatable rooms roomsToUpdate= random.sample([room for room in rooms if room.updatable], 8) # update the rooms' Treasures for room, value in zip(roomsToUpdate, values): room.updateTreasure(value) a = range(1,99) for room in (3,5): rooms[room].updateTreasure(100 + random.choice(a)) for room in rooms: print room ----------------------------- end code ----------------------------- Things I did not do, but suggest: - store the room destinations in a text file rather than hard-coding them in the program. It is almost always a good idea to separate logic from data. -create a Treasure class, storing instances directly in roo,s rather than indexes, and storing treasure definitions in the text file. -store room instances in the destinations rather than indexes. At this point you no longer need indexes! -- Bob Gailer 919-636-4239 Chapel Hill, NC _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor