Need Multiple Sudoku Solutions

Posted by user1567909 on Stack Overflow See other posts from Stack Overflow or by user1567909
Published on 2012-10-23T04:43:50Z Indexed on 2012/10/23 5:02 UTC
Read the original article Hit count: 132

Filed under:
|
|
|
|

I'm trying to output multiple sudoku solutions in my program. For example, when You enter this as input:

8..6..9.5.............2.31...7318.6.24.....73...........279.1..5...8..36..3......

.'s denote blank spaces. Numbers represent already-filled spaces. The output should be a sudoku solution like so:

814637925325149687796825314957318462241956873638274591462793158579481236183562749

However, I want to output multiple solutions. This would be all the solutions that should be printed:

814637925325149687796825314957318462241956873638274591462793158579481236183562749
814637925325941687796825314957318462241569873638472591462793158579184236183256749
834671925125839647796425318957318462241956873368247591682793154579184236413562789
834671925125839647796524318957318462241956873368247591682793154519482736473165289
834671925125839647796524318957318462241965873368247591682793154519482736473156289

But my program only prints out one solution. Below is my recursive solution to solving a sudoku solution

bool sodoku::testTheNumber(sodoku *arr[9][9], int row, int column)
{
  if(column == 9)
  {
    column = 0;
    row++;
    if(row == 9)
      return true;
  }

  if(arr[row][column]->number != 0)
  {
    return testTheNumber(arr, row, column+1);
  }
  for(int k = 1; k < 10; k++)
  {
    if(k == 10)
    {
      arr[row][column]->number = 0;
      return false;
    }
    if(rowIsValid(arr, k, row) && columnIsValid(arr, k, column) && boxIsValid(arr, k, row, column))
    {
      arr[row][column]->number = k;
      if(testTheNumber(arr, row, column+1)==true)
      {
        return true;
      }

      arr[row][column]->number = 0;
    }
  }
  return false;
}

Could anyone help me come up with a way to print out multiple solutions? Thanks.

© Stack Overflow or respective owner

Related posts about c++

Related posts about c