Simon Tatham 12b64a1db1 Build a lot of conditioned-out test and helper programs.
Most of these aren't especially useful, but if we're going to have
them in the code base at all, we should at least ensure they compile:
bit-rotted conditioned-out code is of no value.

One of the new programs is 'galaxieseditor', which borrows most of the
Galaxies code but changes the UI so that you can create and remove
_dots_ instead of edges, and then run the solver to see whether it can
solve the puzzle you've designed. Unlike the rest, this is a GUI
helper tool, using the 'guiprogram' cmake function introduced in the
previous commit.

The programs are:
 - 'combi', a test program for the utility module that generates all
   combinations of n things
 - 'divvy', a test program for the module that divides a rectangle at
   random into equally-sized polyominoes
 - 'penrose-test', a test program for the Penrose-tiling generator
   used in Loopy, which outputs an SVG of a piece of tiling
 - 'penrose-vector', a much smaller test program for the vector
   arithmetic subroutines in that code
 - 'sort-test', a test of this code base's local array sorting routine
 - 'tree234-test', the exhaustive test code that's been in tree234.c
   all along.

Not all of them compiled first time. Most of the fixes were the usual
kind of thing: fixing compiler warnings by removing unused
variables/functions, bringing uses of internal APIs up to date. A
notable one was that galaxieseditor's interpret_move() modified the
input game state, which was an error all along and is now detected by
me having made it a const pointer; I had to replace that with an extra
wrinkle in the move-string format, so that now execute_move() makes
the modification.

The one I'm _least_ proud of is squelching a huge number of
format-string warnings in tree234-test by interposing a variadic
function without __attribute__((printf)).
2021-05-25 10:52:25 +01:00
2021-05-25 10:45:40 +01:00
2021-04-25 09:59:15 +01:00
2021-04-25 09:59:15 +01:00
2021-04-25 22:00:12 +01:00
2021-04-25 09:59:15 +01:00
2018-11-13 21:48:24 +00:00
2018-11-13 21:48:24 +00:00
2021-04-22 06:24:23 +01:00
2021-04-22 06:24:23 +01:00
2021-04-25 22:00:12 +01:00
2021-03-29 19:02:23 +01:00
2018-11-13 21:48:24 +00:00
2021-04-22 06:24:23 +01:00
2018-11-13 21:48:24 +00:00
2021-04-27 07:08:08 +01:00
2018-11-13 21:48:24 +00:00
2021-04-26 18:05:09 +01:00
2018-11-13 21:48:24 +00:00
2018-11-13 21:48:24 +00:00
2018-11-13 21:48:24 +00:00
2021-03-29 19:02:23 +01:00
2019-12-30 08:10:34 +00:00
2017-09-20 18:03:44 +01:00
2021-04-25 22:00:12 +01:00
2021-05-21 09:10:53 +01:00
2021-05-21 09:10:53 +01:00
2021-03-29 19:02:23 +01:00
2018-11-13 21:48:24 +00:00
2017-05-07 16:25:56 +01:00

This is the README accompanying the source code to Simon Tatham's
puzzle collection. The collection's web site is at
<https://www.chiark.greenend.org.uk/~sgtatham/puzzles/>.

The puzzle collection is built using CMake <https://cmake.org/>. 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
<https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
Description
No description provided
Readme 26 MiB
Languages
C 93.3%
JavaScript 1.4%
Objective-C 1.1%
CMake 1.1%
HTML 0.8%
Other 2.2%