Hacker News new | ask | show | jobs
by jcl 4237 days ago
Also, each puzzle has its own custom constraint solver to generate fresh puzzles with desirable characteristics. For example, the version of minesweeper in the collection generates puzzles such that the first click never reveals a mine and that there is always a logical path to the solution -- no guessing needed.
1 comments

I always wonder with these kinds of puzzles how one can come up with an initial settings that (a) yields a unique correct solution and (b) has a logical next step at every step (so doesn't require thinking ahead x steps to arrive at a conflict)
Conveniently enough, there's a long section of the developer docs that covers exactly that topic: http://www.chiark.greenend.org.uk/~sgtatham/puzzles/devel/wr...
For at least Loopy, the generator works by generating a full puzzle with all hints, and then removing hints one at a time until the solver can't solve the puzzle. So the complexity of the puzzles that can be generated are dependent on the cleverness of the solver.
That's less elegant than I hoped for. Still works though!
One possibility is to generate or change small parts of the puzzle each turn. For minesweeper for example you start out with an empty field, and after the first click you generate the mines.