26 Commits

Author SHA1 Message Date
806ae71ca4 Add myself to copyright holders and update copyright years
The KaiOS port is big enough that I think I'm worth mentioning, and it
was released in 2023.
2023-01-21 18:36:13 +00:00
2409a9913e Update copyright years.
They'd got quite out of date, oops.
2021-04-25 22:00:12 +01:00
0377184510 New puzzle: 'Mosaic'.
This is similar in concept to Minesweeper, in that each clue tells you
the number of things (in this case, just 'black squares') in the
surrounding 3x3 grid section.

But unlike Minesweeper, there's no separation between squares that can
contain clues, and squares that can contain the things you're looking
for - a clue square may or may not itself be coloured black, and if
so, its clue counts itself.

So there's also no hidden information: the clues can all be shown up
front, and the difficulty arises from the game generator choosing
which squares to provide clues for at all.

Contributed by a new author, Didi Kohen. Currently only has one
difficulty level, but harder ones would be possible to add later.
2021-04-25 09:59:15 +01:00
b443a84efe Add printing support for GTK.
Printing is only available in GTK versions >= 2.10. We can only embed
the page setup dialog on GTK >= 2.18, so on a GTK version less than
that, we must use a separate page setup dialog.

In GTK, printing is usually done one page at a time, so also modify
printing.c to allow printing of a single page at a time.

Create a separate drawing API for drawing to the screen and for
printing. Create a vtable for functions which need to be different
depending on whether they were called from the printing or drawing
API.

When a function is called from the printing API, it is passed a
separate instance of the frontend than if it were called from the
drawing API. In that instance of the frontend, an appropriate vtable
is available depending on whether it was called from the printing or
drawing API.

The low-level functions used for printing are enabled even if printing
is not enabled. This is in case we ever need to use them for something
other than printing with GTK. For example, using Cairo as a printing
backend when printing from the command line. Enabling the low-level
functions even when GTK printing is not available also allows them to
be compiled under as many build settings as possible, and thus lowers
the chance of undetected breakage.

Move the definition of ROOT2 from ps.c to puzzles.h so other files can
use it (gtk.c needs it for hatching).

Also add myself to the copyright list.

[Committer's note: by 'printing', this log message refers to the GTK
GUI printing system, which handles selecting a printer, printing to a
file, previewing and so on. The existing facility to generate
printable puzzles in Postscript form by running the GTK binaries in
command-line mode with the --print option is unaffected. -SGT]
2019-12-30 08:10:34 +00:00
5c6fcf10a3 Standardise character encoding of source tree on UTF-8.
Editing LICENCE just now, I happened to notice that the accented
letter in Jonas Kölker's name was encoded in ISO 8859-1, as is the
occurrence of the same name in filling.c - but _not_ the one in
guess.c, which was in UTF-8 already. That seems needlessly confusing,
so let's sort it out. Now every text file in this git repository is
suitable for interpreting as UTF-8.
2017-11-18 15:27:37 +00:00
8af0c29615 New grid type: the trihexagonal tiling, or 'kagome lattice'.
Regular hexagons and equilateral triangles in strict alternation, with
two of each interleaved around each vertex.
https://en.wikipedia.org/wiki/Trihexagonal_tiling

Thanks to Michael Quevillon for the patch.
2017-11-18 15:26:13 +00:00
580f9059e3 Continue the tradition of only remembering to update the copyright year
every other year.

[originally from svn r10116]
2014-01-16 01:03:58 +00:00
383c15794a Patch from Rogier Goossens to speed up the Pattern solver.
do_recurse() now prunes early whenever it encounters a branch of the
search tree inconsistent with existing grid data (rather than the
previous naive approach of proceeding to enumerate all possibilities
anyway and then ruling them out one by one); do_recurse also tries to
split the row up into independent sections where possible; finally the
main solver loop (all three copies of which have now been factored out
into a new solve_puzzle function), instead of simply looping round and
round over all the rows and columns, heuristically looks at the ones
most changed since the last time deduction was attempted on them, on
the basis that that will probably yield the most information the
fastest.

[originally from svn r9828]
2013-04-12 16:28:55 +00:00
fc9e6277bd New puzzle! 'Unruly', contributed by Lennard Sprong, is an
implementation of a puzzle usually called 'Tohu wa Vohu'.

[originally from svn r9680]
2012-10-07 10:18:33 +00:00
67ddba7a15 New puzzle! Contributed by Steffen Bauer, an implementation of
'Haunted Mirror Maze', a game involving placing ghosts, zombies and
vampires in a grid so that the right numbers of them are visible along
sight-lines reflected through multiple mirrors.

[originally from svn r9652]
2012-09-08 10:48:05 +00:00
660216a1c4 It's a new year.
(It was a new year this time last year, too.)

[originally from svn r9382]
2012-01-22 15:44:04 +00:00
572a746937 New year, new puzzle.
[originally from svn r8823]
2010-01-08 12:25:44 +00:00
c696ee2220 It's been a new year for some time now.
[originally from svn r8494]
2009-03-19 23:32:30 +00:00
3d6de1eb47 A substantial patch to Solo from Bernd Schmidt, adding support for
the 'Killer Sudoku' puzzle type. As a side effect I've had to
increase the default tile size of Solo, so that the extra numbers
drawn in the squares in Killer mode were still legible.

[originally from svn r8455]
2009-02-22 12:16:54 +00:00
53bcfc7aea Nearly forgot: Lambros definitely deserves a place in the copyright
statement!

[originally from svn r8164]
2008-09-06 17:38:43 +00:00
dd85394bf6 Michael Schierl's patch to compile the puzzles as Java applets using
NestedVM. Wow!

[originally from svn r8064]
2008-06-10 20:35:17 +00:00
9673a2a733 It's another new year.
[originally from svn r7848]
2008-02-10 17:12:49 +00:00
15f70f527a Dariusz Olszewski's changes to support compiling for PocketPC. This
is mostly done with ifdefs in windows.c; so mkfiles.pl generates a
new makefile (Makefile.wce) and Recipe enables it, but it's hardly
any different from Makefile.vc apart from a few definitions at the
top of the files.

Currently the PocketPC build is not enabled in the build script, but
with any luck I'll be able to do so reasonably soon.

[originally from svn r7337]
2007-02-26 20:35:47 +00:00
df31d4f419 New puzzle: `Filling', a Fillomino implementation by Jonas Koelker.
[originally from svn r7326]
2007-02-25 11:37:05 +00:00
21127b78eb It's a new year.
[originally from svn r7048]
[this svn revision also touched putty,putty-website]
2007-01-01 21:19:14 +00:00
acafc4d93f It's a new year.
[originally from svn r6513]
[this svn revision also touched halibut,putty,putty-website]
2006-01-08 18:18:11 +00:00
c9b47daf1b New puzzle: Loopy', an implementation of Nikoli's Slither Link' or
`Loop the Loop' puzzle. Contributed by Mike Pinna.

[originally from svn r6211]
2005-08-24 21:32:54 +00:00
0bcdb7aa03 James Harvey has contributed an implementation of `Same Game', also
known as ksame (KDE) and Same GNOME (GNOME).

[originally from svn r5914]
2005-06-07 19:01:36 +00:00
a88d1a459c Updates for OS X port (including updating copyright statements).
[originally from svn r5201]
2005-01-24 15:45:37 +00:00
8158b5350d Richard B's utterly evil `netslide': cross between Net and Sixteen.
[originally from svn r4257]
2004-05-26 09:07:14 +00:00
25755b09b9 Add a licence file.
[originally from svn r4192]
2004-05-03 12:48:13 +00:00