Simon Tatham's Portable Puzzle Collection
Introduction
This page contains a collection of small computer programs which
implement one-player puzzle games. All of them run natively on Unix
(GTK) and on Windows. They can also be played on the web, as Java or
Javascript applets.
2023-09-20: I'm sorry to say that I'm no
longer going to be able to build the MacOS version of these puzzles.
My Mac was very old and had been struggling for a while; it's now
stopped working, and I don't intend to buy a new one. If someone else
would like to volunteer to maintain the Mac front end code and provide
a downloadable application, I'll help them get started, and link to
their site once it's up and running. Sorry, Mac users. In the
meantime, there's always the web version...
I wrote this collection because I thought there should be more small
desktop toys available: little games you can pop up in a window and
play for two or three minutes while you take a break from whatever
else you were doing. And I was also annoyed that every time I found a
good game on (say) Unix, it wasn't available the next time I was
sitting at a Windows machine, or vice versa; so I arranged that
everything in my personal puzzle collection will happily run on both
those platforms and more. When I find (or perhaps invent) further
puzzle games that I like, they'll be added to this collection and will
immediately be available on both platforms. And if anyone feels like
writing any other front ends for platforms I don't support (which
people already have) then all the games in this framework will
immediately become available on another platform as well.
The games
The actual games in this collection were mostly not my invention;
they are re-implementations of existing game concepts within my
portable puzzle framework. I do not claim credit, in general, for
inventing the rules of any of these puzzles. (I don't even claim
authorship of all the code; some of the puzzles below have been
submitted by other authors.)
Below each image are two links to versions of the puzzle you can
potentially play on the web. The 'js' link (and also the puzzle image
itself) links to a version based on JavaScript and WebAssembly. The
'java' link is now probably obsolete: it links to a Java applet, which
most browsers don't support any more.
Also below each image is a link to the Windows binary for the game,
and a link to the manual. For all other platforms, the games are
provided in a single bundle, so scroll down to the
Download
section to get them all.
Galaxies |
---|
|
[ java | js | manual ]
[ galaxies.exe ] |
Divide the grid into rotationally symmetric regions each centred on a dot. |
Keen |
---|
|
[ java | js | manual ]
[ keen.exe ] |
Complete the latin square in accordance with the arithmetic clues. |
Loopy |
---|
|
[ java | js | manual ]
[ loopy.exe ] |
Draw a single closed loop, given clues about number of adjacent edges. |
Map |
---|
|
[ java | js | manual ]
[ map.exe ] |
Colour the map so that adjacent regions are never the same colour. |
Pattern |
---|
|
[ java | js | manual ]
[ pattern.exe ] |
Fill in the pattern in the grid, given only the lengths of runs of black squares. |
Pearl |
---|
|
[ java | js | manual ]
[ pearl.exe ] |
Draw a single closed loop, given clues about corner and straight squares. |
Range |
---|
|
[ java | js | manual ]
[ range.exe ] |
Place black squares to limit the visible distance from each numbered cell. |
Rectangles |
---|
|
[ java | js | manual ]
[ rect.exe ] |
Divide the grid into rectangles with areas equal to the numbers. |
Solo |
---|
|
[ java | js | manual ]
[ solo.exe ] |
Fill in the grid so that each row, column and square block contains one of every digit. |
Undead |
---|
|
[ java | js | manual ]
[ undead.exe ] |
Place ghosts, vampires and zombies so that the right numbers of them can be seen in mirrors. |
Licence
This game collection is copyright 2004-2021 Simon Tatham (portions
copyright Richard Boulton, James Harvey, Mike Pinna, Jonas
Kölker, Dariusz Olszewski, Michael Schierl, Lambros Lambrou,
Bernd Schmidt, Steffen Bauer, Lennard Sprong, Rogier Goossens, Michael
Quevillon, Asher Gordon and Didi Kohen). It is all distributed under
the
MIT licence.
This means that you can do pretty much anything you like with the
game binaries or the code, except pretending you wrote them
yourself, or suing me if anything goes wrong.
Here are Windows executables of the puzzle games in the
collection. (On Windows only, the Net executable is called
"netgame.exe
" in order to avoid clashing with Windows's
own "net.exe
". The name of the game is still
"Net" :-)
blackbox.exe | bridges.exe | cube.exe | dominosa.exe | fifteen.exe
filling.exe | flip.exe | flood.exe | galaxies.exe | guess.exe
inertia.exe | keen.exe | lightup.exe | loopy.exe | magnets.exe
map.exe | mines.exe | mosaic.exe | netgame.exe | netslide.exe
palisade.exe | pattern.exe | pearl.exe | pegs.exe | range.exe
rect.exe | samegame.exe | signpost.exe | singles.exe | sixteen.exe
slant.exe | solo.exe | tents.exe | towers.exe | tracks.exe
twiddle.exe | undead.exe | unequal.exe | unruly.exe | untangle.exe
Here is a Windows help file. If you install this in the
same directory as the executable files, then each game should
display a "Help" menu giving help about the game collection in
general and that game in particular. You can also browse the same
documentation online in HTML format.
puzzles.chm
Here is a .zip
file containing all of the above
Windows binaries and the help file.
puzzles.zip
Here is a Windows MSI installer.
puzzles-
version-installer.msi
(This MSI installer is unfortunately not inter-compatible with the
old Windows executable installer package I used to provide here, so if
you still have the old one installed, you'll have to uninstall it
before installing the MSI version. Sorry about that.)
Here is a source archive of the collection, which should allow
you to compile the games on any Unix system supporting GTK. (At
least, I hope so; I've only tested it on Linux so far, and I
wouldn't rule out portability issues on other types of Unix.)
puzzles-
version.tar.gz
Some people have ported this puzzle collection to various mobile
devices. Here are some links to their port pages:
(Note that these are third-party ports, not maintained by me. If you
have trouble with one of these, you should probably follow the link
to the appropriate maintainer's page and contact them about the
problem in the first instance.)
Here's the last version of the MacOS puzzles, in the form of a disk
image, containing a single monolithic application called "Puzzles".
You should be able to download and open the disk image, then drag the
Puzzles application to wherever you feel like keeping it; it should be
entirely self-contained. However, this is not being
updated, because my Mac build machine doesn't work any more.
Puzzles.dmg, as of 2023-09-20
Development
All of these puzzles are written in C, with a porting interface so
that the same back-end puzzle code can talk to wildly different
graphical front ends. The source archive above includes native GUI
front ends for Windows and Mac OS X, an X front end using the
GTK+
library, and a mixed C/Java front end for compiling the puzzles into
Java applets using
NestedVM.
There is extensive developer documentation
describing the cross-platform interfaces. If you want to write a new
puzzle or a new front end (to make all these games run on another
platform), this is probably the place to start.
If you want to see the latest state of development, you can check
the development sources out from my git
repository:
git clone https://git.tartarus.org/simon/puzzles.git
Alternatively, you can browse the repository on the web,
here.
Feedback
Please report bugs to
anakin@pobox.com.
If your bug report involves a particular puzzle being faulty (if you
think it has no solution, or more than one solution), please send a
saved game file if possible, using the ‘Game >
Save’ menu option, or equivalent. Saved game files are much more
useful (and smaller) than graphical screenshots: they contain all the
information I need to reproduce the game generation and find out what
went wrong.
If you can't do that (e.g. if you're playing on the web, which has no
save-game feature), please at least copy and paste both the random
seed and the game description (from the ‘Random Seed’ and
‘Specific’ menu options, or the ‘Enter game
ID’ and ‘Enter random seed’ buttons in the
Javascript games).
Also, you might find it helpful to read
this article
before reporting a bug.
Patches are welcome.
(comments to anakin@pobox.com)
(thanks to
chiark
for hosting this page)
(last modified on Sat Sep 28 01:40:15 2024)