Loopy / grid.c: support the new Spectre monotiling.

This uses a tile shape very similar to the hat, but the tiling
_structure_ is totally changed so that there aren't any reflected
copies of the tile.

I'm not sure how much difference this makes to gameplay: the two
tilings are very similar for Loopy purposes. But the code was fun to
write, and I think the Spectre shape is noticeably prettier, so I'm
adding this to the collection anyway.

The test programs also generate a pile of SVG images used in the
companion article on my website.
This commit is contained in:
Simon Tatham
2023-06-16 18:30:53 +01:00
parent c82537b457
commit a33d9fad02
15 changed files with 4691 additions and 1 deletions

View File

@ -10,7 +10,7 @@ add_library(core_obj OBJECT
laydomino.c loopgen.c malloc.c matching.c midend.c misc.c penrose.c
ps.c random.c sort.c tdq.c tree234.c version.c ${platform_common_sources})
add_library(core $<TARGET_OBJECTS:core_obj>)
add_library(common $<TARGET_OBJECTS:core_obj> hat.c)
add_library(common $<TARGET_OBJECTS:core_obj> hat.c spectre.c)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})