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

Asher Gordon d57e232e2b midend_get_prefs: Don't free memory that we just copied elsewhere. il y a 1 an
auxiliary 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
cmake 6de17a7511 Refactor the new icon installation code. il y a 1 an
html 43db4aa38e Support user preferences in the Emscripten frontend. il y a 1 an
icons 02cdafaa15 Generate more common icon sizes il y a 1 an
kaios 255744676c KaiOS: be more careful detecting the presence of KaiAds il y a 1 an
osx 806ae71ca4 Add myself to copyright holders and update copyright years il y a 1 an
unfinished a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
.gitignore 0377184510 New puzzle: 'Mosaic'. il y a 3 ans
Buildscr 7a66855947 KaiOS: include extra copyright notices in manual il y a 1 an
CHECKLST.txt cc7f5503dc Migrate to a CMake-based build system. il y a 3 ans
CMakeLists.txt 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
LICENCE 806ae71ca4 Add myself to copyright holders and update copyright years il y a 1 an
Makefile.doc f0f974055b Makefile.doc: Update file list in the clean rule il y a 2 ans
PuzzleApplet.java d72db91888 Map Ctrl-Shift-Z to Redo. il y a 7 ans
README cc7f5503dc Migrate to a CMake-based build system. il y a 3 ans
benchmark.pl d7c873313e benchmark.pl: replace use of Perl <> with <<>>. il y a 5 ans
benchmark.sh 6691ad180c Fix benchmark.sh for the new cmake world. il y a 3 ans
blackbox.c 6db5cdadd0 Blackbox: correct FROMDRAW() macro for C division semantics il y a 1 an
bridges.c c8cc4a5f38 Add user preference for Bridges' "G" key (show_hints) il y a 1 an
chm.css d1cfcffa05 Ability to build a .CHM for Puzzles. I haven't yet arranged for it il y a 18 ans
combi.c 83244294f5 Move other test main()s out of library source files. il y a 1 an
cube.c 5fb94c9f47 Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Cube il y a 1 an
desktop.pl 71c66b6fbd desktop.pl: cope with unfinished puzzles. il y a 3 ans
devel.but 1547154efb Expose the NO_EFFECT/UNUSED distinction through midend_process_key() il y a 1 an
divvy.c c5e253a9f9 Reorganise the dsf API into three kinds of dsf. il y a 1 an
dominosa.c dd0004fb5e Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Dominosa il y a 1 an
drawing.c 3b9cafa09f Fall back to <math.h> if <tgmath.h> doesn't work. il y a 1 an
dsf.c 68d242c587 Actually rewrite the dsf implementation. il y a 1 an
emcc.c ad7042db98 js: Copy-to-clipboard support il y a 1 an
emcccopy.but 7a66855947 KaiOS: include extra copyright notices in manual il y a 1 an
emcclib.js 5acce15ed9 js: pass preferences file from JS to C on the heap, not the stack il y a 1 an
emccpre.js ad7042db98 js: Copy-to-clipboard support il y a 1 an
fifteen.c 73e7bf73bb Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Fifteen il y a 1 an
filling.c f749a33c5e Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Filling il y a 1 an
findloop.c bb926f4ee4 findloop: alternative query function. il y a 5 ans
flip.c 88f86918bf Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Flip il y a 1 an
flood.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
fuzzpuzz.c 015bd14474 Don't give the libFuzzer version of fuzzpuzz a special name il y a 1 an
fuzzpuzz.dict f5924fc8a7 Correct syntax of fuzzpuzz.dict il y a 1 an
galaxies.c a56781bb69 Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Galaxies il y a 1 an
grid.c 40d0de7a66 grid_edge_bydots_cmpfn: remove dangerous pointer comparison. il y a 1 an
grid.h e6cdd70df8 grid.c: allocate face/edge/dot arrays incrementally. il y a 1 an
gtk.c 1547154efb Expose the NO_EFFECT/UNUSED distinction through midend_process_key() il y a 1 an
gtk.h 873d613dd5 Fix missing statics and #includes on variables. il y a 1 an
guess.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
hat-internal.h 71e1776094 Move hat-test into its own source file. il y a 1 an
hat-tables.h 6f75879e9f Hats tiling: more uniform parent selection. il y a 1 an
hat.c 6fb890e0ea Reference my just-published article about aperiodic tilings. il y a 1 an
hat.h 8d6647548f Loopy / grid.c: new grid type, 'Hats'. il y a 1 an
inertia.c 0058331aeb New backend functions: get_prefs and set_prefs. il y a 1 an
keen.c c5076be383 Keen: fix another misuse of dsf_canonify. il y a 1 an
latin.c 83244294f5 Move other test main()s out of library source files. il y a 1 an
latin.h 5030d87903 latin_solver_alloc: handle clashing numbers in input grid. il y a 1 an
laydomino.c 706e27de8d Patch from James H to abstract out of Dominosa the code which il y a 15 ans
lightup.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
list.c 873d613dd5 Fix missing statics and #includes on variables. il y a 1 an
loopgen.c e6cdd70df8 grid.c: allocate face/edge/dot arrays incrementally. il y a 1 an
loopgen.h e6cdd70df8 grid.c: allocate face/edge/dot arrays incrementally. il y a 1 an
loopy.c e6cdd70df8 grid.c: allocate face/edge/dot arrays incrementally. il y a 1 an
magnets.c c82537b457 Fix some unused-variable warnings. il y a 1 an
malloc.c 57fbcd2b29 malloc.c: check allocation sizes against PTRDIFF_MAX. il y a 2 ans
map.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
matching.c 83244294f5 Move other test main()s out of library source files. il y a 1 an
matching.h 83244294f5 Move other test main()s out of library source files. il y a 1 an
midend.c d57e232e2b midend_get_prefs: Don't free memory that we just copied elsewhere. il y a 1 an
mines.c 87e98e6715 Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Mines il y a 1 an
misc.c 6b5142a7a9 Move mul_root3 out into misc.c and generalise it. il y a 1 an
mosaic.c c82537b457 Fix some unused-variable warnings. il y a 1 an
nestedvm.c 1547154efb Expose the NO_EFFECT/UNUSED distinction through midend_process_key() il y a 1 an
net.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
netslide.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
no-icon.c 873d613dd5 Fix missing statics and #includes on variables. il y a 1 an
nullfe.c bb1ab36108 Keep a set of preferences in the midend. il y a 1 an
nullgame.c 0058331aeb New backend functions: get_prefs and set_prefs. il y a 1 an
osx-help.but 1c47f2b553 Improve OS X help: split back up into multiple files (thanks to il y a 20 ans
osx.m a95796ebca osx.m: avoid division by zero in startConfigureSheet. il y a 1 an
padtoolbar.bmp 15f70f527a Dariusz Olszewski's changes to support compiling for PocketPC. This il y a 17 ans
palisade.c c82537b457 Fix some unused-variable warnings. il y a 1 an
pattern.c c82537b457 Fix some unused-variable warnings. il y a 1 an
pearl.c e6cdd70df8 grid.c: allocate face/edge/dot arrays incrementally. il y a 1 an
pegs.c 1d56527014 Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Pegs il y a 1 an
penrose-internal.h 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
penrose-legacy.c 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
penrose-legacy.h 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
penrose.c 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
penrose.h 61e9c78248 grid.c: new and improved Penrose tiling generator. il y a 1 an
printing.c bb1ab36108 Keep a set of preferences in the midend. il y a 1 an
ps.c 88358f0643 Add 'const' to the draw_polygon coords array parameter. il y a 3 ans
puzzle.desktop.in c99fbed8c9 Install the icons to the right location on Linux il y a 1 an
puzzles.but c8cc4a5f38 Add user preference for Bridges' "G" key (show_hints) il y a 1 an
puzzles.h 6b5142a7a9 Move mul_root3 out into misc.c and generalise it. il y a 1 an
puzzles.rc 19aa3a5d4b Remove leftover Windows CE cruft. il y a 3 ans
random.c 93be3f7cca Be more careful with type of left operand of << il y a 1 an
range.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
rect.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
samegame.c 9e4e15fda2 Use the standard game_mkhighlight in Same Game il y a 1 an
signpost.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
singles.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
sixteen.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
slant.c 19b3bfc0d3 Distinguish MOVE_UNUSED from MOVE_NO_EFFECT in Slant il y a 1 an
solo.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
sort.c 83244294f5 Move other test main()s out of library source files. il y a 1 an
spectre-internal.h 14db5e0145 spectre_adjacent: optionally report dst_edge. il y a 1 an
spectre-tables-auto.h a33d9fad02 Loopy / grid.c: support the new Spectre monotiling. il y a 1 an
spectre-tables-manual.h a33d9fad02 Loopy / grid.c: support the new Spectre monotiling. il y a 1 an
spectre.c 14db5e0145 spectre_adjacent: optionally report dst_edge. il y a 1 an
spectre.h a33d9fad02 Loopy / grid.c: support the new Spectre monotiling. il y a 1 an
tdq.c 5f5b284c0b Use C99 bool within source modules. il y a 6 ans
tents.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
towers.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
tracks.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
tree234.c 83244294f5 Move other test main()s out of library source files. il y a 1 an
tree234.h 83244294f5 Move other test main()s out of library source files. il y a 1 an
twiddle.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
undead.c c82537b457 Fix some unused-variable warnings. il y a 1 an
unequal.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
unruly.c c82537b457 Fix some unused-variable warnings. il y a 1 an
untangle.c a9af3fda1d Rename UI_UPDATE as MOVE_UI_UPDATE il y a 1 an
version.c 873d613dd5 Fix missing statics and #includes on variables. il y a 1 an
version.h 1ba20eddba Provide a static version.h for development builds. il y a 10 ans
webpage.pl cc7f5503dc Migrate to a CMake-based build system. il y a 3 ans
website.url cce13ed712 Switch chiark URLs to https. il y a 7 ans
windows.c 1547154efb Expose the NO_EFFECT/UNUSED distinction through midend_process_key() il y a 1 an
winwix.mc 3cf09c2615 Reinstate 32-bit Windows builds of Puzzles. il y a 7 ans

README

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

The puzzle collection is built using CMake . To
compile in the simplest way (on any of Linux, Windows or Mac), run
these commands in the source directory:

cmake .
cmake --build .

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
.