Since you have gotten so good at writing interesting extensions to your adventure game, here are the last challenges for you. Here are additional specifications for the game.
There was some talk about making a room that was a well or a pit, from which one needed a ladder to get out. Implement this: A ladder item, and a pit room. You could make it either that the user deliberately jumps down into the pit (and maybe sacrifices some health points) because he or she needs to acquire an item at the bottom or to leave something at the bottom; or that the user falls into the pit by mistake, not knowing the room was a pit (imagine a door that leads off a precipice). Using the ladder--- if the user had acquired one--- gets one out of it.
We need another timed element, to make the "Timed" supertype of Bomb interesting. So, implement a monster egg (and monster). A monster egg is an item in one of the rooms. After a certain number of turns, the egg will hatch, and a monster will appear in the room instead. The monster is also a timed item; every turn (or so), it moves into an adjacent room (if it can).
If the user meets the monster (if it moves into the room the monster is in, or if the monster moves into the user's room), then the user dies. However, the user has a way to deal with the monster: before it hatches, he or she can destroy the egg (with a bomb) or take it and place it in the pit (so that when it hatches, it can't move around--- but woe to the user if the egg hatches while in his or her inventory!). The monster may also leave evidence in a room it has been in recently, detectable using the look command, so the user knows that the monster is nearby.
The user should not only find treasure, but also escape the castle with it. This will give the monster more time to get the user.
Finally, polish this thing up. Make the descriptions of the rooms and items nicer, and generally provide more text to the user. Don't just say "you are dead." Say "you ran out of health points (or starved)" or "you were killed in the explosion" or "you were torn apart by the monster." When a person uses food, say "it tastes good" or some other message. When a bomb explodes, display "BOOM," and when the egg hatches, say "You hear a hatching noise from somewhere in the castle." Now that you're not under the time constraint of the lab, be creative.
You will have to do this on your own time next week. Coordinate among each other, and communicate (partially by email). You don't all have to work at the same time, but you will need to plan together. Since your changes will affect various parts of the system, you should not think of any code as owned by a specific person---you are all responsible for all the code. Since there are fewer "tasks" than people, you'll have to figure out how to divide them, and you may want to do parts of it in pairs.
DON'T SUBMIT UNLESS IT COMPILES, or you will become very unpopular with your classmates. If you must submit broken code, broadcast an email explaining what the problem is (as best you know) and where you left off.
DUE: Friday, Oct 19, 5:00 pm