I was a bit confused at first, but finally got it and had a lot of fun playing. I'm still not very good at it, though :) Also, your source code is really nice -- great work!
I'm glad you figured it out. It's definitely a little unusual, and I tried to come up with some better ways to introduce concepts, but this is where it ended up in the end.