Graph search, algorithmic optimization, and word games: How to program Ruzzle
The graph processing aspects of programming Ruzzle are interesting.
With a suitable dictionary, this could be converted into a spelling puzzle for not so recent languages.
Or for that matter, a spelling puzzle for vocabularies in general (albeit some might require a larger board).