Variable could be in game items.
- type int- Coins/Bills
- type string - Scroll/Books
- type float - Water/Wines/Drinks
There are two aproches you could take with this idea. The first would be to have each room already defined and by playing the game you would in essance debugging and editing the application so you can complete the level.
Here is a sample level in crud ascii.
[a = 10]
[if a == 10] - [ a = 1]
[while a != 10] - [ ]
A walkthrough of this level:
You enter the first room and there is a scrool on the floor which you pick up. The scroll says "Hello World" on it. There is a door in front of you. You walk through the door into the second room. On the wall above a door it displays "Hello World". You walk through the door and get 10 coins. Moving into the next room it has two doors. You turn and go into the room on your left. You get zapped and are left with one coin. Going back you go in the other room where it has on the wall "1". The next room has a open door and a closed door. The open door leads to a empty room. Confused you go back a few rooms and get ten more coins and then continue to the last room where the door to the exit is now open.
This way of using the ide is much more game orianted.
The second idea would be that you would be dropped off in a empty room. There would be a console type interface where you can modify the room. You can make that room do anything you want, but it can only do one statement. The room could contain coins or a jug of wine (w = 10.2) for example. Once the room gets a statement then one or more doors will appear. You can then go into the next room and modify it. When exiting the "ide" it would leave a level.c file that can compile and run with any normal compiler.
It might be interesting to open existing source in this environment to see how lost you get.