Working game

It's simple, fragile, and needs refactoring, but works.