For rules on the game itself, see the Wikipedia article or the original paper published in the American Journal of Physics.
This implementation is written in ClojureScript and ReactJS, and has three front-ends written using different UI libraries:
And, additionally in this fork, a port to React Native, based on the Om binding. (See the section at the bottom.)
Note: QTTT depends on a library, com.cognitect/contextual that may not yet
be in public repositories. If not, you can install the dependency locally by cloning
https://github.com/levand/contextual.git and running lein install in that repository.
First, compile the ClojureScript:
lein cljsbuild
Then, visit the HTML page at resources/public/dev.html.
You will need to select which UI library to view by passing a lib
URL parameter. For example:
dev.html?lib=omdev.html?lib=reagentdev.html?lib=quiescent
Play proceeds in turns. There is no win condition detection, yet, but all the other rules of the game are in place.
Ideas for future expansion include:
- Win condition detection
- Network multiplayer
- AI
- From the top level run
lein cljsbuild once ios. cd iOS/QTTTnpm installpod installopen QTTT.xcworkspace- Run on a simulator (iPhone 6 works great)
If you'd like to connect to the iOS app using a REPL, run script/ambly-repl.
Watch a quick demo of it running on iOS:
