BryanL wrote:I wanted to ask you your method of generation. Do you just start with one grid, and trial and error the second grid till you get the necessary grid, then remove clues until it is minimal for the method?
There is a solver routine that solves or reduces the possibilities using known techniques like singles, pairs etc.
There is a depth-first routine that systematically tries all options one by one - starting with the first possible digit in the first possible cell and so on - repeatedly calling the solver routine.
(This routine was designed to conclusively tell if a situation has one unique solution - as a by-product it returns a valid one if found.)
It treats the twin grids as one collection of 162 cells.
By coincidence, since the cells of the 1st grid are ordered before the cells of the 2nd grid, this routine will start to complete the 1st grid. But on this part I could easily do some scrambling.
Till here I think it works no different from many existing sudoku programs. Only in the solver routine the reveal-constraint is applied.
(I actually started with a different random generation routine that repeatedly tries random options - and starts all over again whenever the solver routine returns Unsolvable. This routine is much slower
and couldn't even find any 3-each-directon grid in a 16hrs run.)
Once I have a complete grid, clues are removed until it is minimal for the method (of the solver routine).