Home | solVItaire

solVItaire

As its name suggests, this is an implementation of the classic solitaire games Klondike, Spider and FreeCell. It has some nice to use vi(1) like keybindings, but can also be played with standard cursor keys, the number pad/row or even the mouse (if your terminal supports that). You can select from three different Unicode character schemes, including a colour one. solVItaire has a very unique join mode (see Keybindings).

The code is currently available on GitHub. Note: this will change. Only this page is canonical.

See it in action



Features

Keybindings

h / j / k / l (or cursor keys)
move left / down / up / right
spacebar
lock in selection
enter
pull from stock
u
undo last move
J
Join: automagically find the best pile to join to here
0-9
directly select a pile
:
enter ex(1) mode. Commands available are :quit, :new and :restart.

You can double click (or hit the spacebar/number twice) to move the selected card to the foundation (or a free cell in FreeCell).

In Klondike, the numbers 8, 9, and 0 address the stock, waste and foundation, respectively. In FreeCell, 9 and 0 address the free cells and the foundation.

Notes

Uses a big-ass two-dimensional function pointer array to select which move to execute. Code could do with some cleanup, but it works.

Apparently, accessing prerequisites with a different file name than the target name with $< in Makefiles is a GNU extension. Who knew?