Chazar,
Here's a game for your students to play to practice their coding in hell
Untrusted:
Untrusted is an ascii game about reaching the exit—though there is a little more to it than that. These exits are blocked off initially. The only way to remove or reposition them being to delve into the source code and reprogram the game. This is a clever project and a great way to get started with Javascript, should you be looking to wade into those codey waters.
Play it online here http://alexnisnevich.github.io/untrusted/
I did the first 10 levels or so. Some of the solutions are trivial and others are a bit more complex but none of them should take more than 10-15 minutes if you know how to code and think logically about puzzles.
KGB
P.S. One advantage of separate code bases is that one can be used to check the validity of the other. This is especially handy in complex systems (like the combat simulation I used to check Piranha's coding of Warbaron's combat routines).