INTRODUCTION

gFifteen is a graphical implementation of the old puzzle game "fifteen". The goal is to move the numbered tiles from the random starting position into the following arrangement, with the empty square at the bottom right:

  1  2  3  4
  5  6  7  8
  9 10 11 12
 13 14 15

You must do this by moving tiles that are next to the empty square into the empty square location. Click on a tile once to move it into the empty location.

All puzzles provided are solveable. For additional challenge, attempt to complete each puzzle in as few moves as possible, or as quickly as possible. Bobby Fischer was known to have completed the puzzle in 25 seconds in a public demonstration. Using this software (which can be used faster than a real board) I was once able to complete it in 24 seconds.

COMPILING/INSTALLATION

To compile gFifteen, you will need libraries and headers for gtk+-3 <www.gtk.org>. Then, run the following commands from within the source directory:

  ./configure
  make
  su
  make install

Please note that the software will not run correctly until installed because all resources must be in their expected locations.

It is not necessary to run 'su' if you install to a non-system directory. E.g.:

  mkdir /home/bob/bin /home/bob/share
  ./configure --prefix=/home/bob
  make
  make install
  /home/bob/bin/gfifteen

Note that, by default, gFifteen will try to use optimized (hand-crafted) assembly sources, which may not build on all systems. (PIC issues are the only ones I am currently aware of.) Use of these sources can be disabled by passing --disable-assembly to the configure script.

DESKTOP FILES

Currently, the desktop entry and icon are not installed by the build system, as this would complicate packaging. In other words, gFifteen will not by show up in your "applications" menu after installation. For a desktop environment that is freedesktop compatible, you should simply need to run the following commands as a priviledged user:

  cp gfifteen.desktop /usr/share/applications
  cp gfifteen.svg /usr/share/pixmaps

If you do not have the necessary priviledges, the following commands should work instead:

  mkdir -p ~/.local/share/applications
  mkdir -p ~/.local/share/pixmaps
  mv gfifteen.desktop ~/.local/share/applications
  mv gfifteen.svg ~/.local/share/pixmaps

CONTACT

Christopher M. Howard
home page: <https://frigidcode.com/code/gfifteen/>
e-mail: <christopher.howard@frigidcode.com>

I am interested in receiving bug reports, build problems, feature requests, and so forth, though I may not be able to respond directly to every e-mail. Do not send any code unless you intend for it to be released with this program under the terms of the GPLv3 license, and the code can legally be included under those terms.

LICENSE

GPLv3. Refer to the COPYING file for the full text of the license.

PORTABILITY

gFifteen is targeted for Gnu/Linux. I will support other free (non-proprietary) operating systems as time and resources allow. At present, I have only tested the software on the amd64 (64 bit PC) architecture, but I believe the code should be portable to other architectures. If that is not the case for your architecture, please send me any information you have on the problem.

gFifteen is only designed to compile with GCC and may at some point use GCC-only compiler extensions.

SUPPORTING FREE SOFTWARE

This software has been made available freely under a copyleft license, yet it takes a lot of time and energy to put together the software. If you would like to express your appreciation for this work, or would like to encourage the development of more free software, please consider making a small donation. Please visit <https://frigidcode.com/donate/> to get more information.

