diff options
| author | Simon Tatham <anakin@pobox.com> | 2023-03-31 18:35:43 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2023-03-31 19:29:28 +0100 |
| commit | 1af1204b9c33c9c03b2e0fe66c2f07d9729cbc72 (patch) | |
| tree | 87c0910f7ac83aaf514a443907af2b8bab15a468 /magnets.c | |
| parent | 52d801a06a804244292f4a872eeaf5e84a9f70b1 (diff) | |
| download | puzzles-1af1204b9c33c9c03b2e0fe66c2f07d9729cbc72.zip puzzles-1af1204b9c33c9c03b2e0fe66c2f07d9729cbc72.tar.gz puzzles-1af1204b9c33c9c03b2e0fe66c2f07d9729cbc72.tar.bz2 puzzles-1af1204b9c33c9c03b2e0fe66c2f07d9729cbc72.tar.xz | |
hat-test: option to generate four-coloured hat tilings.
This commit is purely frivolous even by Puzzles standards, in that
it's totally unrelated to any actual puzzle. But I know at least one
person has already used the 'hat-test' tool in this code base to
generate a patch of hat tiling for decorative purposes, so it's useful
in its own right. Also, now that I've worked out _how_ to do this,
it's a shame not to keep the code.
Of course, any tiling of the plane _can_ be four-coloured, just by the
Four Colour Theorem. But for a tiling with structure it's nicer if the
colouring is related to the structure in some way. And there's a
reasonably nice explicit construction that does just that: the paper
introducing the tiling observes that if each reflected hat is fused
with a particular one of its neighbours, the resulting tiling is
graph-theoretically equivalent to a tiling of the plane by hexagons.
And _that_ tiling can be three-coloured, in a unique way up to colour
choices. This induces a four-colouring of the hat tiling in which the
reflected hats have a colour to themselves, and everything else is
coloured the same as its corresponding hexagon in the three-colouring.
Actually implementing this turns out not to be too difficult using my
coordinate system. I hand-wrote tables giving a patch of colouring for
each of the four kitemaps; then, whenever two kitemaps meet, you can
determine how the colours map to each other by looking at the
overlapping tiles. So I can have hat-test work out the colour of each
tile as it goes.
So hat-test now supports a '--fourcolour' option to apply this
colouring to the output tiling.
Diffstat (limited to 'magnets.c')
0 files changed, 0 insertions, 0 deletions