
Title:
Sudoku Solver  Software Testing

Description:

The challenged problem for this problem set

is essentially an extension of what's already done in the first problem.

Instead of checking whether a Sudoku board is valid, we're actually going to be solving

the Sudoku board and coming up with a valid solution assuming that it is valid.

So, we're going to be extending new check Sudoku function.

Since I don't know what you wrote, then I invite you to paste this in

or paste it into something else, run it locally, and then give your findings on the forum

and the code for people to handle has end and hopefully break.

Now, our Sudoku solver is going to be essentially an extension,

so it should return None for broken input just like check_Sudoku does.

False for inputs with no valid solutions and a valid 9/9 Sudoku grid

containing no zero elements at the end.

Any 0 elements that are in board that's pass N assuming it's valid

should be solved and changed into numbers one through nine that give a valid solution.

There are a lot of ways you can do that.

There are a lot of clever ways to solve a partially completed Sudoku board.

We could always just go with bruteforce recursive solution

may be not the best idea if people end up testing against very, very difficult puzzles,

and you can come up with some really pathologically evil Sudoku puzzles

if you don't have fast algorithm.

The one I'll be showing you in the solution video is essentially just a bruteforce algorithm.

Please give some example of some Sudoku puzzles

that maybe it wouldn't fair so well against or maybe it would take a very, very long time to complete.

We're going to be running this in the equator against the same Sudoku puzzles.

Hardest commented out by default because for a more naive Sudoku solver,

it will take a little bit of time maybe five to 10 seconds or so

depending on exactly how you plotted it out to actually solve this one

and there are going to be multiple different solutions depending on exactly how you code this up.

We are going to be checking that.

We would simply be checking that it's a valid Sudoku board with no zeros.

And again, I invite you to post your solution code in the forums,

how you coded it out, what you think it might be vulnerable to,

and to break other people's code and see how you would test against a Sudoku solver,

which is a bit more complicated of a piece of code than the checker itself.

There are a few more ways that things can go wrong.

Okay, I hope you had fun with this, and I hope you enjoy breaking everyone else's code.