|
|
|
|
|
by manifoldgeo
974 days ago
|
|
This is amazing! After playing my first game, I feel immediately inspired to think about the relationships among the tiles / positions. Maybe I'll try to write some kind of solver as a learning exercise. I noticed that there is an option to download the puzzle as JSON, and I tried it. Can you tell us what the schema is? I see there's a key called `tiles` that has a value of an object mapping ints to other ints. What do those ints represent? I figure since there are 36 tiles, they key int is the tile number, but what about the value? I think this info would be valuable for programmatically solving these puzzles. Once again, great work! I have a feeling this will be a big hit, possibly of Wordle-like proportions. |
|
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