LYNE Solver, C
LYNE on Steam. Images above taken from the Steam page.
In July/August of 2023, I wanted to brush up on my C before starting work full time. I happened to be playing though some LYNE puzzles at the time, and so I thought it might be a good project.
I made a simple recursive solver. It traverses all the possible moves for a given puzzle board, and returns all the solutions.
Boards and solutions are represented as text characters. A/B/C are the color/shape types, with uppercase representing end terminals. Connector nodes are numbers that indicate the number of open slots.
Example Input Board:
A a 2 a b
C B 2 2 2
A 3 c 2 b
c C c c B
Sample Solutions:
Solution 1
A-a-2-a.b
.../|.|/|
C.B.2-2-2
.\./.\./|
A-3-c-2.b
./.\..|.|
c-C.c-c.B
Solution 2
A-a-2-a.b
.../|.|/|
C.B.2-2-2
.\./.\./|
A-3-c-2.b
./.\..|.|
c-C.c-c.B
Solution 3
A-a-2-a.b
.../|.|/|
C.B.2-2-2
.\./.\./|
A-3-c.2-b
./.\.\.\.
c-C.c-c.B
...
Solution 94
A-a-2-a.b
....|\|/|
C.B-2.2-2
.\./.\./|
A-3-c.2-b
./.\.\.\.
c-C.c-c.B
Total Solutions: 94
Total Moves Explored: 31507
0.013583
This post is 5 months late, but better late than never! I had aspirations of optmizing this code, compiling it to webassembly, and designing a nice web interface for it. I may still do that in the future.
I know there are LYNE solvers out there already, but it'd be fun to get familiar with WASM and package this solver into a complete product.