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), on Windows, and (in principle, but currently unmaintained) on
Mac OS X. They can also be played on the web, as Javascript applets.
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 - Mac OS pre-10, PocketPC, or
whatever it might be - 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 a link to version of the puzzle you can play
on the web. There's also a link marked 'js', which links to an
alternative web version written in Javascript using asm.js
;
those versions are new as of March 2013 and have been somewhat
tested in Firefox 19, Chrome 26, Internet Explorer 10 and Safari 6.
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.
Black Box |
|
[
js
|
manual
]
[
blackbox.exe
] |
Find the hidden balls in the box by bouncing laser beams off
them.
|
Cube |
|
[
js
|
manual
]
[
cube.exe
] |
Pick up all the blue squares by rolling the cube over them.
|
Filling |
|
[
js
|
manual
]
[
filling.exe
] |
Mark every square with the area of its
containing region.
|
Flip |
|
[
js
|
manual
]
[
flip.exe
] |
Flip groups of squares to light them all up at once.
|
Galaxies |
|
[
js
|
manual
]
[
galaxies.exe
] |
Divide the grid into rotationally symmetric
regions each centred on a dot.
|
Inertia |
|
[
js
|
manual
]
[
inertia.exe
] |
Collect all the gems without running into any
of the mines.
|
Keen |
|
[
js
|
manual
]
[
keen.exe
] |
Complete the latin square in accordance with
the arithmetic clues.
|
Loopy |
|
[
js
|
manual
]
[
loopy.exe
] |
Draw a single closed loop, given clues about
number of adjacent edges.
|
Magnets |
|
[
js
|
manual
]
[
magnets.exe
] |
Place magnets to satisfy the clues and avoid
like poles touching.
|
Map |
|
[
js
|
manual
]
[
map.exe
] |
Colour the map so that adjacent regions are
never the same colour.
|
Mines |
|
[
js
|
manual
]
[
mines.exe
] |
Find all the mines without treading on any of them.
|
Pattern |
|
[
js
|
manual
]
[
pattern.exe
] |
Fill in the pattern in the grid, given only the lengths
of runs of black squares.
|
Pearl |
|
[
js
|
manual
]
[
pearl.exe
] |
Draw a single closed loop, given clues about
corner and straight squares.
|
Pegs |
|
[
js
|
manual
]
[
pegs.exe
] |
Jump pegs over each other to remove all but one.
|
Range |
|
[
js
|
manual
]
[
range.exe
] |
Place black squares to limit the visible
distance from each numbered cell.
|
Rectangles |
|
[
js
|
manual
]
[
rect.exe
] |
Divide the grid into rectangles with areas equal to the
numbers.
|
Same Game |
|
[
js
|
manual
]
[
samegame.exe
] |
Clear the grid by removing touching groups of the same colour squares.
|
Slant |
|
[
js
|
manual
]
[
slant.exe
] |
Draw a maze of slanting lines that matches
the clues.
|
Solo |
|
[
js
|
manual
]
[
solo.exe
] |
Fill in the grid so that each row, column and
square block contains one of every digit.
|
Towers |
|
[
js
|
manual
]
[
towers.exe
] |
Complete the latin square of towers in
accordance with the clues.
|
Twiddle |
|
[
js
|
manual
]
[
twiddle.exe
] |
Rotate the tiles around themselves to arrange them into
order.
|
Undead |
|
[
js
|
manual
]
[
undead.exe
] |
Place ghosts, vampires and zombies so that the right numbers of them can be seen in mirrors.
|
Unequal |
|
[
js
|
manual
]
[
unequal.exe
] |
Complete the latin square in accordance with
the > signs.
|
Unruly |
|
[
js
|
manual
]
[
unruly.exe
] |
Fill in the black and white grid to avoid runs of three.
|
Licence
This game collection is copyright 2004-2012 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 and Rogier Goossens). 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
|
galaxies.exe
|
guess.exe
|
inertia.exe
keen.exe
|
lightup.exe
|
loopy.exe
|
magnets.exe
|
map.exe
|
mines.exe
netgame.exe
|
netslide.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
twiddle.exe
|
undead.exe
|
unequal.exe
|
unruly.exe
|
untangle.exe
Here are some Windows help files. If you install these 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.
(The help file is available in a choice of two formats. The
.CHM
file is HTML Help, supported by Win98 and above;
the .HLP
and .CNT
files are old-style
WinHelp, supported by everything from Win95 up to WinXP but not by
Vista. The HTML help file is the recommended one, and the puzzles
will use it by preference if both are available.)
HTML Help:
puzzles.chm
WinHelp:
puzzles.hlp
|
puzzles.cnt
Here is a .zip
file containing all of the above
Windows binaries and the help file.
puzzles.zip
Here is a Windows installer.
puzzles-
version-installer.exe
Here is a Mac OS X disk image file, 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, please
note that this application is UNSUPPORTED AND NOT KEPT UP TO
DATE: my Mac stopped working in April 2012 and so I currently have
no means to build, test or develop this port.
Puzzles.dmg
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.)
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 Subversion repository.
The Subversion URL you need is
svn://svn.tartarus.org/sgt/puzzles
. So you could use a
checkout command such as this:
svn co svn://svn.tartarus.org/sgt/puzzles
Alternatively, you can browse the Subversion repository on the WWW,
here.
Feedback
Please report bugs to
anakin@pobox.com.
Patches are welcome.
(comments to anakin@pobox.com)
(last modified on Fri Apr 12 17:29:46 2013)