Here is my solution, which is basically Jame's solution, but split into a few files. You can optionally turn on and off the method_missing trick by choosing to require or not require "interactive" adventure.rb (general game functions / direct translation with a couple extra aliases): http://stonecode.org/organizations/unh.rb/code/meetings/2005.09.29/adventure.rb interactive.rb (method missing trick) http://stonecode.org/organizations/unh.rb/code/meetings/2005.09.29/interactive.rb game.rb (The wizard game) http://stonecode.org/organizations/unh.rb/code/meetings/2005.09.29/game.rb I take no credit for Jame's code, just figured I'd share this for those of you who wanted to play with what james made without cutting up the Lisp / Perl file.