🛠️ clojure warrior

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:

Core

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.

UI

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.

2017-06-29
clojure warrior
:project-started-on2016-11-10
:project-updated-on2017-06-29
:post-created-on2025-10-29
:post-updated-on2025-10-29