Clojure Warrior is a programming game to motivate learning Clojure. You write code to control a warrior, fighting your way up a tower filled with various enemies. It is remake of Ruby Warrior.
Can you make it to the top of the tower?

The project consists of two repos:
The main design challenge was to adapt the Ruby object-oriented idioms to Clojure's functional approach; I ended up with a single function that is passed the relevant state and must return a vector with the action (inspired by re-frame).
I tried to practice TDD when developing this, and ended up with a decent set of tests. Fairly happy with how easy it ended up being to test.
The original is played via CLI. I wanted it to be more accessible to non-Clojurers (particularly, avoiding set-up), and Clojurescript had recently released the ability to self-compile, so, a web-playable version it became. (Nowadays, I'd use sci.)
It also stores your code in the URL (compressed), make saving / sharing code possible.
Keen eyed readers might recognize a similar code and testing interface to what's in Cyberleague and in Clojure Turtle
Art is from OpenGameArt.org. I had a ton of fun adapting the images and creating the visual experience.