simon-svn: puzzles: simon

Commits to Tartarus CVS repository. tartarus-commits at lists.tartarus.org
Mon Apr 7 16:56:42 BST 2008


SVN root:       svn://svn.tartarus.org/sgt
Changes by:     simon
Revision:       7974
Date:           2008-04-07 16:56:42 +0100 (Mon, 07 Apr 2008)

Log message (22 lines):
Substantial reworking of Solo so that it implements both Sudoku-X
(require both main diagonals to have one of every digit in addition
to all the usual constraints) and Jigsaw Sudoku (replace the array
of rectangular sub-blocks with the sub-blocks being random
polyominoes). To implement the latter, I've moved my `divvy.c'
library routine out of the `unfinished' subdirectory.

Jigsaw mode is currently an undocumented feature: you enable it by
setting the rows parameter to 1 (and the columns parameter to your
desired grid size, which unlike normal Sudoku can be anything you
like including a prime number). The reason it's undocumented is
because generation times are not yet reliably short: sometimes
generating a jigsaw-type puzzle can hang for hours and still get
nowhere. (The algorithm should terminate in principle, but not in
any time you're prepared to wait.) I _think_ I know how to solve
this, but have yet to try it. Until then, jigsaw mode will remain a
hidden feature.

Printing of X-type puzzles is also substandard at present, because
the current print-colour API replaces the desired light shading of
the X-cells with heavy diagonal hatching. I plan to adjust the API
imminently to address this.

Modified files:
A   puzzles/divvy.c
U   puzzles/puzzles.but
U   puzzles/puzzles.h
U   puzzles/solo.R
U   puzzles/solo.c
D   puzzles/unfinished/divvy.c

Links:
http://svn.tartarus.org/?rev=7974&view=rev
http://svn.tartarus.org/puzzles/divvy.c?rev=7974&view=markup
http://svn.tartarus.org/puzzles/puzzles.but?rev=7974&r1=7973&r2=7974
http://svn.tartarus.org/puzzles/puzzles.h?rev=7974&r1=7973&r2=7974
http://svn.tartarus.org/puzzles/solo.R?rev=7974&r1=7973&r2=7974
http://svn.tartarus.org/puzzles/solo.c?rev=7974&r1=7973&r2=7974



More information about the tartarus-commits mailing list