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).

You can download the game from git.gir.st:

git clone https://git.gir.st/solVItaire.git cd solVItaire make

See it in action







Features

Runs in your Unicode-Terminal

Number of suits in Spider selectable ( -s N with N being either 1 , 2 or 4 )

with being either , or ) use vi(1) style keys, the cursor keys or your mouse to navigate

style keys, the cursor keys or your mouse to navigate Automatic space saving mode, if your piles get too high (see screenshots Klondike "6" or Spider "3")

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 .