chibineku Posted May 6, 2010 Report Share Posted May 6, 2010 (edited) I'm trying to write a 6x6 mini sudoku solver, and I wouldn't mind some help with my algorithm.I'll show you my code along with my thinking, to see if you can clear up my messy ideas. function solve() { //gather all the numbers already input var rows = new Array(); //for each row $('#sudoku_frame tr').not('.ignore').each(function(r) { rows[r+1] = new Array(); //for each column in each row $(this).find('td input').each(function(c) { rows[r+1][c+1] = $(this).val(); }); }); At this point, rows is a multidimensional array representing the whole grid: 1 (row) => 1 (col) => 6 2 (col) => 2 3 (col) => '' 4 (col) => '' 5 (col) => '' 6 (col) => '' etc. etc. //define possibles function Sudoku(n) { this.possible = new Array(); for(i=1;i<=n;i++) { this.possible[i] = i; } } //for each row for(var i in rows) { toTry = new Sudoku(6); //for each field for(var k in rows[i]) { //if the field isn't empty if(rows[i][k] != '') { //remove the value from the possible array for(x in toTry.possible) { if(toTry.possible[x] == rows[i][k]) { toTry.possible[x] = ''; } //end if {} } //end removing value } //end if the field isn't empty } //end for each field } //end for each row For each row, I need to check what values are already input and scratch them off a list of possibles, which I can do by creating a new Sudoku object which has, as it's 'possible' property, an array of the possible numbers (where n is the size of the grid). So, if the first number on the first row is known to be 2, the possibles array of the first toTry object looks like: 1 => 1 2 => '' 3 => 3 4 => 4 5 => 5 6 => 6I intend then to check each full column against the possibles list, and scratch off any more. If I end up with one left in the possibles list, I can go ahead and add it to the rows array.I don't know if it's going to be possible to code this using only human solving heuristics - it might require some sort of mathematical approach.What do you guys think - any tips?You can see it, for what it's worth, here. Edited May 6, 2010 by chibineku Link to comment Share on other sites More sharing options...

## Recommended Posts

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account## Sign in

Already have an account? Sign in here.

Sign In Now