And I think the code is a masterclass of how to write C. Take a look at the source for the tents puzzle, it’s amazing. https://git.tartarus.org/?p=simon/puzzles.git;a=blob;f=tents...
And I think the code is a masterclass of how to write C. Take a look at the source for the tents puzzle, it’s amazing. https://git.tartarus.org/?p=simon/puzzles.git;a=blob;f=tents...
The story goes that to heat each of the given houses you need to build exactly one gas tank for it. Tank can only heat one house. Tank square and house square need to share a side (and you draw a "pipe" connecting them). Tanks cannot touch other tanks, even diagonally.
And to be honest, the implementation lacks any way to "annotate" the situation in any way. This restricts the player to relatively small and unsatisfying puzzles. I do these on paper only, and I routinely do 35x25 problems, which I could have no hope to keep in my head - the chains of reasoning can span a hundred or more houses. They are published in booklets called "Logi-Mix" (a Polish publication per se, but digestible even if you don't know the language).