I’ve not posted anything in a long time, so I thought I’d dig up something from a long time ago. Once boring day, many moons ago, I stumbled upon a simple console-based Solitaire game, tty-solitaire by Murilo Pereira.
Compiling
- Download tty-solitaire v1.3.1 (dated 4 Sep 2021)
- Extract all files.
- In Terminal, compile it with
make
ormake clean
if you are re-compiling. - Once that’s done, run
./tty-solitaire
Tweaks
I made a few small tweaks:
ttysolitaire.c
I wanted to have a black bacground rather than the default green, so I swapped no-brackground-color
and background-color
:
static int no_background_color = 1; //originally default is not set (0)
static const struct option options[] = {
//...
{"background-color", no_argument, &no_background_color, 0}, //changed from 1 to 0
//...
I landed up also editing the greeting keys to match the changes in the keyboard section.
gui.c
I changed the pointer to *
to ^
and selected from @
to *
:
void draw_cursor(struct cursor *cursor) {
if (cursor->marked) {
mvwin(cursor->window, cursor->y, cursor->x);
waddch(cursor->window, '*'); //from @
} else {
mvwin(cursor->window, cursor->y, cursor->x);
waddch(cursor->window, '^'); //from *
}
wrefresh(cursor->window);
}
keyboard.c
I also changed a few keycodes:
- Use , and . instead of n and m to add or select or de-select more cards,
- Enter and Backspace to select the entire stack, or reset the selection to the top card.
- And, do this with keycode 10 and 127, since
KEY_ENTER
andKEY_BACKSPACE
constants do not work on mac keyboards respectively.
static void handle_card_movement(struct cursor *cursor) {
//...
case 'm':
case '.': //added
//...
case 'M':
case '\n': //added KEY_ENTER
//...
case 'n':
case ',': //added
//...
case 'N':
case 127: //added KEY_BACKSPACE
//...
Have fun!