Comment

Comment by gereleth

I think the downloaded version of Penrose puzzles does not currently contain enough info to run a solver on it. Because the grid is different every time and this info is not present in the downloaded file.

But I can tell you how it works for other grids =).

The contents of `tiles` key are an array of tile shapes. Possible directions where there are connections are binary-encoded. For example, on a square grid 1 means right, 2 means up, 4 means left and 8 means down. So a 3 means a corner piece connecting up and right, a 5 is a horizontal straight piece. A 0 means an empty tile, 15 in this case is a fully connected + tile. It's similar for other grids.

How the tiles are numbered depends on grid implementation. In a square 5x5 puzzle the indices would go like this:

0 1 2 3 4

5 6 7 8 9

...

You can look at grid implementations here: https://github.com/gereleth/hexapipes/tree/main/src/lib/puzz...

You can also import a downloaded puzzle (non-penrose) on the custom puzzle page and watch my solver work on it)). https://hexapipes.vercel.app/custom

parent gereleth 3 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton