muern1
muern1

Reputation: 13

Can you access lines below the one being read in Python?

I'm trying to write a text-based adventure in Python, for which I created a class called Room. A Room consists of a description and 4 other Rooms in each direction (north, south, ...).

But when I create, for instance, two rooms next to each other, I have to create one of them first, meaning it can't understand what I pass as the Room next to it because it's a line below.

I was wondering what ways there are to fix such a problem, other than perhaps making and importing a new file for each room. I'll add a small example.

room_north = Room("RoomNorth", room_south)
room_south = Room("RoomSouth", room_north)

Thanks in advance :)

Upvotes: 1

Views: 36

Answers (1)

Thomas
Thomas

Reputation: 182000

One way is to change your Room class so that it doesn't need the connections at construction. First create the rooms, and then add the connections:

room_north = Room("RoomNorth")
room_south = Room("RoomSouth")
room_north.south = room_south
room_south.north = room_north

Another way is restructure your code to store all rooms in a dictionary, identified by strings:

rooms = {
  "room_north": Room("RoomNorth", "room_south"),
  "room_south": Room("RoomSouth", "room_north"),
}

A possible drawback is that every lookup of a room will have to go through this dictionary, of course.

Upvotes: 2

Related Questions