A list is like a pile of paper. Say you want the paper with a green triangle (or something). You can't tell where it is just by looking at the pile. The first sheet has a blue square, so you take that one off. The second sheet isn't it either. The only way you can find it is to, one-by-one, remove sheets of paper from the pile until you find that one sheet you are looking for. This is slow, of course.
Arrays are like a book, where each page has a page number, and a contents/index at the front. If you want a specific page, you can instantly find what you are looking for in the index, and go directly to that page. You don't need to look at every page before it in order to find it.
So what is the point of lists? If you had more paper to add, you simply put it onto the pile. To add an extra page into the book, however, is going to be hard work. If you put it in the middle, for example, all pages afterwards will need to be updated in the index.
So in short, lists are good where you can be adding or removing from it quickly (like bullets from a gun - one second there are 10, the next they have all gone) but they are not good when you need to access a specific item in the list. Since persumably there is nothing unique about each bullet, and you will need to go through them all one by one to update them anyway, they are perfect for storage in lists.
Arrays are good when you need to access a specific item quickly because the items are unique in some way (like a room), rather than just clones of some generic thing that always acts the same (like a bullet). Arrays are bad for when you need to add or remove elements, as this process is slow, very slow if in the middle of the array.
Since you'll be needed to access specific rooms, to find out which is the next one, and it's unlikely you will be adding or removing rooms (have a variable that says the number of rooms on the level, and initialize the array to that number) I would say arrays would be best for your rooms.
Arrays are like a book, where each page has a page number, and a contents/index at the front. If you want a specific page, you can instantly find what you are looking for in the index, and go directly to that page. You don't need to look at every page before it in order to find it.
So what is the point of lists? If you had more paper to add, you simply put it onto the pile. To add an extra page into the book, however, is going to be hard work. If you put it in the middle, for example, all pages afterwards will need to be updated in the index.
So in short, lists are good where you can be adding or removing from it quickly (like bullets from a gun - one second there are 10, the next they have all gone) but they are not good when you need to access a specific item in the list. Since persumably there is nothing unique about each bullet, and you will need to go through them all one by one to update them anyway, they are perfect for storage in lists.
Arrays are good when you need to access a specific item quickly because the items are unique in some way (like a room), rather than just clones of some generic thing that always acts the same (like a bullet). Arrays are bad for when you need to add or remove elements, as this process is slow, very slow if in the middle of the array.
Since you'll be needed to access specific rooms, to find out which is the next one, and it's unlikely you will be adding or removing rooms (have a variable that says the number of rooms on the level, and initialize the array to that number) I would say arrays would be best for your rooms.