This took me much longer to make than I hoped. Originally, I thought to continue from my small CGI script in a very iterative fashion towards an interactive toy. I had no particular goal in mind. Now I have a couple of connected room one can navigate between.
Just below is the link to the script if you want to try it out. Keep in mind, though, that I'm not a native user of the English language and not a good creative writer at all. This is just a tiny experiment.
What I Learned
I think the "ASCII art on top, text bellow" format works quite well, except that ASCII art is *hard*. At first I tried to generate the room outlines with the door problematically, but this turned out to be too tricky. I ended up building a system which can draw rectangles and then add 'sprites' on top of it. Sprites are represented as a simple list of strings. Details are added by hand, but I need to learn how to do ASCII art first. Furthermore, using '▓' to shade the background doesn't work that well. At best it's just too "dark", at worst it doesn't render properly.
Everything is stateless. This simplifies maintenance a lot.
If you have suggestions, I'm happy to receive them at 'email@example.com'