Хорошо. Так тебе нужна семантика? (поворот - это действие, зажечь объект, аргумент ... (я имею в виду ваш комментарий к dbemerlin)).
Почему бы не определить грамматику? хм ... я думаю, что lex и yacc не вариант? (поскольку это вовсе не ООП, но вам нужно «скомпилировать» пользовательский ввод для создания чего-либо - выполнения некоторого кода, который изменяет данные комнаты и выдает результат)
У вас может быть дизайн ООП для вашего объекта и его действия (например, у всех объектов есть метод .describeMe () ..), а также анализатор ввода + компилятор.
Я совершенно не в теме?
Редактировать: после просмотра паттерна интерпретации, на который указал Марк Симан, кажется, что это путь к тому, чтобы вы захотели его в ООП. (но вы несколько заново изобретете колесо)