I recently discovered Simon Tatham’s remarks on writing friendly (i.e. guaranteed solvable) puzzle games. Of note:
- a variant of minesweeper that never requires you to guess
- a pile of proofs in net.c, along with tactics to generate uniquely solvable boards for a game you might know as KNetWalk.
- untangle.c, a reimplementation of Planarity with a different graph generation method (see
static char * new_game_desc).