Liam, I couldn't get "into" your approach at the moment, but I was wondering if you have looked at the following:
First, the Reverse Puzzle section of: http://cs.gettysburg.edu/~tneller/resources/ai-search/uninformed-java/ and secondly more generally: http://www.gamedev.net/reference/articles/article1374.asp http://www.gamedev.net/reference/articles/article1433.asp http://www.gamedev.net/reference/articles/article2041.asp Just some references I've used for puzzle problems, Lee C Liam Clarke wrote: > Hi all, > > If you aren't aware of Sudoku, this is it - http://www.sudoku.com/ > > Big craze at my office, and I've just been wracking my brains to try and > think of how to model it in Python (in order to solve.) > > What I'm not sure of is how to implement it. > > Basic rundown of a Sudoku puzzle is - > > > Generally composed of 9 x 9 squares, with the box divided further into > nine 3 x 3 mini-squares. Certain numbers are given at the start. > > Sudoku puzzles follow these rules - > > Each column, row and mini-square must contain the complete set of > numbers 1 - 9. > The numbers do not have to be sequential. > Each column, row, and mini-square can only contain each number once > > So that's it. So, to implement... > > I was thinking, a list of lists of lists.... > [grid[0], grid[1], grid[2], > grid[3], grid[4], grid[5], > grid[6], grid[7], grid[8] ] > > [ > [ > [a,b,c], > [d,e,f,], > [g,h,i] > ], > [ > [j,k,l], > [m,n,o], > [p,q,r].... > > So forth. This approach gets a little confusing in terms of array > arithmetic but it's livable. > > Now each variable can be [1-9].... > > Variable a (grid[0][0][0]) can be 1 unless > > grid - any member of grid[0] is 1 > row - any member of grid[1][0] or grid[2][0] is 1 > column - grid[3][x][0] or grid[6][x][0] is 1 (where x is an index of 0 to 2) > > My current approach is to start with each variable as a list of numbers > [1-9] and to pop numbers based on the above rules, > but I got thinking about sets and what not, and wondered if they would > work better, unions and intersections and whatnot. > > Problem is, I don't know the first thing about set mathematics. > > Any pointers in the right direction would be gratefully appreciated. > > Regards, > > > Liam Clarke > -- > 'There is only one basic human right, and that is to do as you damn well > please. > And with it comes the only basic human duty, to take the consequences.' > > > ------------------------------------------------------------------------ > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor