My fork of Simon Tatham's Portable Puzzle Collection. https://www.chiark.greenend.org.uk/~sgtatham/puzzles/

Asher Gordon a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
html 1db5961b8b Fix docs link from the JS Rectangles page. 1 year ago
icons 43b9eb1472 Create 96x96 icons for gnome-shell 2 years ago
unfinished 47cec547e5 Unruly, Group: reference-count the 'immutable' array. 1 year ago
.gitignore a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
Buildscr d9e03f50da Don't initialise GTK in --screenshot mode. 1 year ago
CHECKLST.txt 10460d1bc7 Add Tracks to the automake makefile's "install" target. 4 years ago
LICENCE b443a84efe Add printing support for GTK. 1 month ago
Makefile.doc a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
PuzzleApplet.java d72db91888 Map Ctrl-Shift-Z to Redo. 2 years ago
README cce13ed712 Switch chiark URLs to https. 2 years ago
Recipe a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
Transform.pm a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
benchmark.pl d7c873313e benchmark.pl: replace use of Perl <> with <<>>. 1 year ago
benchmark.sh 894921015d Move the benchmarking logic out into a script. 4 years ago
blackbox.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
blackbox.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
bridges.R deff331e5f Bridges: use the new findloop for loop detection. 4 years ago
bridges.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
chm.css d1cfcffa05 Ability to build a .CHM for Puzzles. I haven't yet arranged for it 13 years ago
combi.c 3276376d1b Assorted char * -> const char * API changes. 2 years ago
configure.ac 9df80d7587 GTK 3 port: arrange configure.ac support for GTK 2/3 detection. 4 years ago
cube.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
cube.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
desktop.pl e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
devel.but 33b55db48e Adopt C99 bool in the tree234 API. 1 year ago
divvy.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
doc.mk a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
dominosa.R 9f0dfba5fa Dominosa: add area-parity deductions, at Basic level. 10 months ago
dominosa.c e2135d51c5 Fix build failure in C90 mode. 10 months ago
drawing.c f6965b92e1 Adopt C99 bool in the printing API. 1 year ago
dsf.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
emcc.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
emcclib.js b31ea22167 Factor some HTML dialog functions out of emcclib. 2 years ago
emccpre.js 866354ef62 Javascript frontend: make Shift- and Ctrl-click work. 10 months ago
emccx.json 721119e4a6 Support for loading games in Javascript puzzles. 2 years ago
fifteen.R cd67072556 Add standalone Fifteen solver, based on the hint feature. 4 years ago
fifteen.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
filling.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
filling.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
findloop.c bb926f4ee4 findloop: alternative query function. 10 months ago
flip.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
flip.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
flood.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
flood.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
galaxies.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
galaxies.c 68363231f0 Galaxies: prevent creation of empty undo-chain items. 1 year ago
grid.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
grid.h 064da87682 Adopt C99 bool in the grid.c API. 1 year ago
gtk.c a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
guess.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
guess.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
inertia.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
inertia.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
keen.R ef6f6427a2 Recipe: centralise dependencies for latin.c. 1 year ago
keen.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
latin.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
latin.h a550ea0a47 Replace TRUE/FALSE with C99 true/false throughout. 1 year ago
laydomino.c 706e27de8d Patch from James H to abstract out of Dominosa the code which 11 years ago
lightup.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
lightup.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
loopgen.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
loopgen.h b16eece9fc New puzzle! Or rather, new-ish, because this one has been lying around 8 years ago
loopy.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
loopy.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
magnets.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
magnets.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
makedist.sh e917a7d03a Re-run mkauto.sh from within makedist.sh. 3 years ago
malloc.c 50edaa578b Miscellaneous fixes from James Harvey's PalmOS porting work: 14 years ago
map.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
map.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
matching.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
matching.h 4408476b75 Implementation of the Hopcroft-Karp algorithm. 1 year ago
midend.c 7f00725c97 Fix a handful of memory leaks in the midend. 10 months ago
mines.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
mines.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
misc.c 836a5c4ea7 Adopt C99 bool in misc.c functions. 1 year ago
mkauto.sh b375232d7d Support building via autoconf and automake. mkfiles.pl now outputs a 6 years ago
mkfiles.pl a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
mkmanpages.pl a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
nestedvm.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
net.R e862d4a79b Net: use the new findloop for loop detection. 4 years ago
net.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
netslide.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
netslide.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
no-icon.c dd85394bf6 Michael Schierl's patch to compile the puzzles as Java applets using 11 years ago
noicon.rc 3940c22d49 MinGW windres doesn't like an empty resource file, so invent a resource to 13 years ago
nullfe.c f6965b92e1 Adopt C99 bool in the printing API. 1 year ago
nullgame.R 1dc3ce6d90 Create a blank .rc file to be used in the absence of icons/foo.rc. 13 years ago
nullgame.c a550ea0a47 Replace TRUE/FALSE with C99 true/false throughout. 1 year ago
obfusc.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
osx-help.but 1c47f2b553 Improve OS X help: split back up into multiple files (thanks to 15 years ago
osx-info.plist 7edbee6cb2 Enable high resolution on osx 1 year ago
osx.icns 0ae8782bc6 Added a framework for putting things other than the binary into a 15 years ago
osx.m 5f5b284c0b Use C99 bool within source modules. 1 year ago
padtoolbar.bmp 15f70f527a Dariusz Olszewski's changes to support compiling for PocketPC. This 13 years ago
palisade.R 6860c65bb3 Add a new puzzle: Palisade. 4 years ago
palisade.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
pattern.R 786f5b18e4 New utility 'patternpicture', to build a Pattern from an xbm. 4 years ago
pattern.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
pearl.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
pearl.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
pegs.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
pegs.c 1ba4e37228 Pegs: clear ui->cur_jumping on undo or redo. 1 year ago
penrose.c 4a172274f2 Apply the rotation in Penrose grid descriptions by rotating in the 8 years ago
penrose.h 4a172274f2 Apply the rotation in Penrose grid descriptions by rotating in the 8 years ago
preprocess.pl a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
printing.c 79a5378b5a Improve const-correctness in printing API. 1 month ago
ps.c b443a84efe Add printing support for GTK. 1 month ago
puzzles.but a89de4890f Build HTML and man documentation and add online help for the GTK frontend. 1 month ago
puzzles.h 79a5378b5a Improve const-correctness in printing API. 1 month ago
puzzles.rc2 15f70f527a Dariusz Olszewski's changes to support compiling for PocketPC. This 13 years ago
random.c 251b21c418 Giant const patch of doom: add a 'const' to every parameter in every 6 years ago
range.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
range.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
rect.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
rect.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
resource.h 15f70f527a Dariusz Olszewski's changes to support compiling for PocketPC. This 13 years ago
samegame.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
samegame.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
signpost.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
signpost.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
singles.R ef6f6427a2 Recipe: centralise dependencies for latin.c. 1 year ago
singles.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
sixteen.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
sixteen.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
slant.R a2380d277a Slant: use the new findloop for loop detection. 4 years ago
slant.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
solo.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
solo.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
sort.c 5c4d6b8f35 New utility routine: sort with a context parameter. 10 months ago
tdq.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
tents.R dcc4d82b23 Convert Tents to use matching instead of maxflow. 1 year ago
tents.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
towers.R ef6f6427a2 Recipe: centralise dependencies for latin.c. 1 year ago
towers.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
tracks.R 01844d39c6 Tracks: use the new findloop for loop detection. 4 years ago
tracks.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
tree234.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
tree234.h a550ea0a47 Replace TRUE/FALSE with C99 true/false throughout. 1 year ago
twiddle.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
twiddle.c 907c42bcf0 Fix build failure reported in gcc 9. 5 months ago
undead.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
undead.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
unequal.R ef6f6427a2 Recipe: centralise dependencies for latin.c. 1 year ago
unequal.c db3b531e2c Add missing 'static' to game-internal declarations. 1 year ago
unruly.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
unruly.c 47cec547e5 Unruly, Group: reference-count the 'immutable' array. 1 year ago
untangle.R e3a8e64812 Put the game summaries from the website into gamedesc.txt. 5 years ago
untangle.c 5f5b284c0b Use C99 bool within source modules. 1 year ago
version.c 64ceaf03b3 Remove the MD5-based manifest file system. 5 years ago
version.h 1ba20eddba Provide a static version.h for development builds. 5 years ago
wceinf.pl 5dda5cf1d0 Rename wingames.lst to gamedesc.txt, and add a couple of extra fields 6 years ago
webpage.pl b36298ab4d Make the images on the web page link to the JS puzzles. 2 years ago
website.url cce13ed712 Switch chiark URLs to https. 2 years ago
windows.c ced51ada36 Replace fe->preset_menu when we change midend. 1 year ago
winiss.pl cce13ed712 Switch chiark URLs to https. 2 years ago
winwix.mc 3cf09c2615 Reinstate 32-bit Windows builds of Puzzles. 2 years ago

README

This is the README accompanying the source code to Simon Tatham's
puzzle collection. The collection's web site is at
.

If you've obtained the source code by downloading a .tar.gz archive
from the Puzzles web site, you should find several Makefiles in the
source code. However, if you've checked the source code out from the
Puzzles git repository, you won't find the Makefiles: they're
automatically generated by `mkfiles.pl', so run that to create them.

The Makefiles include:

- `Makefile.am', together with the static `configure.ac', is intended
as input to automake. Run `mkauto.sh' to turn these into a
configure script and Makefile.in, after which you can then run
`./configure' to create an actual Unix Makefile.

- `Makefile.vc' should work under MS Visual C++ on Windows. Run
'nmake /f Makefile.vc' in a Visual Studio command prompt.

- `Makefile.cyg' should work under Cygwin / MinGW. With appropriate
tweaks and setting of TOOLPATH, it should work for both compiling
on Windows and cross-compiling on Unix.

- `Makefile.osx' should work under Mac OS X, provided the Xcode
tools are installed. It builds a single monolithic OS X
application capable of running any of the puzzles, or even more
than one of them at a time.

- `Makefile.wce' should work under MS eMbedded Visual C++ on
Windows and the Pocket PC SDK; it builds Pocket PC binaries.

Many of these Makefiles build a program called `nullgame' in
addition to the actual game binaries. This program doesn't do
anything; it's just a template for people to start from when adding
a new game to the collection, and it's compiled every time to ensure
that it _does_ compile and link successfully (because otherwise it
wouldn't be much use as a template). Once it's built, you can run it
if you really want to (but it's very boring), and then you should
ignore it.

DO NOT EDIT THE MAKEFILES DIRECTLY, if you plan to send any changes
back to the maintainer. The makefiles are generated automatically by
the Perl script `mkfiles.pl' from the file `Recipe' and the various
.R files. If you need to change the makefiles as part of a patch,
you should change Recipe, *.R, and/or mkfiles.pl.

The manual is provided in Windows Help format for the Windows build;
in text format for anyone who needs it; and in HTML for the Mac OS X
application and for the web site. It is generated from a Halibut
source file (puzzles.but), which is the preferred form for
modification. To generate the manual in other formats, rebuild it,
or learn about Halibut, visit the Halibut website at
.