Q: How do we use constraint propagation to solve the naked twins problem?
A: Here the naked twin are those which include exact same pair on two
peer boxes. So, the best idea is remove all these digits which are part of naked twins from all of the other boxes within the same peer(is called contraint propagation). This idea along with elimination and only choices reduces leads us to solve sudoku.
Q: How do we use constraint propagation to solve the diagonal sudoku problem?
A: On the diagonal sudoku problem; we have to look for the diagonal units along with peers comes from same unit or columns and rows. Moreover, in general the idea is it include extra boxes on the peer from diagonal units more than the regular sudoku problem. So, our peer value here added two more diagonal units which also increase our constraint.
The strategies that were implemented for regular sudoku; elimination, only choices and naked twins can also be applied. The extra idea is we have extra contraints that comes from diagonal unit need to enforce.
This project requires Python 3.
We recommend students install Anaconda, a pre-packaged Python distribution that contains all of the necessary libraries and software for this project. Please try using the environment we provided in the Anaconda lesson of the Nanodegree.
Optionally, you can also install pygame if you want to see your visualization. If you've followed our instructions for setting up our conda environment, you should be all set.
If not, please see how to download pygame here.
solution.py- You'll fill this in as part of your solution.solution_test.py- Do not modify this. You can test your solution by runningpython solution_test.py.PySudoku.py- Do not modify this. This is code for visualizing your solution.visualize.py- Do not modify this. This is code for visualizing your solution.
To visualize your solution, please only assign values to the values_dict using the assign_values function provided in solution.py
Before submitting your solution to a reviewer, you are required to submit your project to Udacity's Project Assistant, which will provide some initial feedback.
The setup is simple. If you have not installed the client tool already, then you may do so with the command pip install udacity-pa.
To submit your code to the project assistant, run udacity submit from within the top-level directory of this project. You will be prompted for a username and password. If you login using google or facebook, visit [this link](https://project-assistant.udacity.com/auth_tokens/jwt_login for alternate login instructions.
This process will create a zipfile in your top-level directory named sudoku-.zip. This is the file that you should submit to the Udacity reviews system.