Racket Gin Rummy in ClojureScript

Read how to play this game in the Racket documentation. The code is on GitHub.

The Aces are:

Ace of diamonds: Racket
Racket (formerly PLT Scheme) includes the Gin Rummy game as a part of a suite of games built with Scheme.
Ace of spades: Clojure / ClojureScript
ClojureScript is a new compiler for Clojure that targets JavaScript.
Ace of hearts: Google Closure
ClojureScript leverages the Google Closure Compiler. The Google Closure Library is a cross-browser JavaScript library, used here mostly for the drag functionality of the cards.
Ace of clubs: Amsterdam Clojurians
The monthly meetup for everything Clojure in Amsterdam.


The Clojure code for the opponent is from a program that takes control of the mouse to play the game against the original Scheme client. This code worked without change in ClojureScript, but its naive algorithm from the Scheme source has been optimized for speed in the browser.
The development version has a view of the table state, including the cards of the opponent. This is a consequence of the whole application living at the client. However the code is written to support communication with a server for a remote opponent in the future.

Written by: Gijs Stuurman (@thegeez / GitHub) I'm looking for Clojure work!