Arrays would work but could be clumsy. I would use types.
As for the rooms, it is probably overkill to use a different function for each room. Since the rooms will be pretty identical in terms of what the player can do in them, you only need one room function which, among other things, displays the description for the current room. Store descriptions for all the rooms in an array or with types and have the function reference the appropriate description. Then, whenever the player moves, have the room function switch which room it is referencing.
As for the rooms, it is probably overkill to use a different function for each room. Since the rooms will be pretty identical in terms of what the player can do in them, you only need one room function which, among other things, displays the description for the current room. Store descriptions for all the rooms in an array or with types and have the function reference the appropriate description. Then, whenever the player moves, have the room function switch which room it is referencing.