The Citrine Citadel


RRace is a slide puzzle racing game. The goal is to re-arrange coloured tiles in the game area to create the objective pattern as quickly as possible.

The game is inspired by Rubik’s Race, a board game for two players that dates back to the Rubik’s Cube craze in the early 1980s, which you can apparently still buy in 2022.

Obtaining RRace

There are presently no released versions of rrace. The latest development sources may be browsed online or cloned directly using git, e.g.,

git clone


RRace is written in C, so a working C compiler is compiled.

To build the terminal UI, a curses library is required. Both ncurses and PDcurses are free software curses implementations that are fully supported. Other implementations may work.

To build the UI for X11 systems, the Motif toolkit is required.

Optionally, in order to support localized program messages the GNU libintl library (included with the GNU C library) is required.

Playing the Game

The game is played on a 5x5 grid of tiles, called the game area, containing 24 tiles in 6 different colours–4 of each colour. There is one empty position in the game area. The goal area is a 3x3 grid of tiles which displays the objective pattern that must be formed to win the game.

Selecting a tile in the same row or column as the empty position will “slide” that tile, along with any tiles between it and the empty position, into the empty space. The new empty position will be at the selected location. Such moves are repeated until the colours in the centre 3x3 subgrid of the game area match the objective.

Since there are four tiles in each colour, any of those tiles may be used to match any of the corresponding positions in the objective. Together with the fact that only a portion of the game area needs to be solved, this makes the game considerably easier than a more traditional slide puzzle.


Please send suggestions, bug reports, patches or any other correspondence regarding RRace by electronic mail to Nick Bowler <>.


RRace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License or (at your option) any later version.