https://github.com/pankajarm/sudoku-ai-agent
An AI Agent who can beat any expert sudoku champion in minutes
https://github.com/pankajarm/sudoku-ai-agent
Last synced: 3 months ago
JSON representation
An AI Agent who can beat any expert sudoku champion in minutes
- Host: GitHub
- URL: https://github.com/pankajarm/sudoku-ai-agent
- Owner: pankajarm
- Created: 2017-06-14T03:22:03.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-06-14T03:26:37.000Z (almost 8 years ago)
- Last Synced: 2025-03-02T09:39:41.953Z (3 months ago)
- Language: Python
- Size: 182 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Artificial Intelligence Nanodegree
## Introductory Project: Diagonal Sudoku Solver# Question 1 (Naked Twins)
Q: How do we use constraint propagation to solve the naked twins problem?
A: If two boxes are present within a unit and have identical two-digit values then they can be named as naked twins. As a default rule of Sudoku, a box, can only contain one unique value, Hence, we can eliminate those two digits from all other boxes within a same unit. Constraint propagation technique with naked twins strategy can be applied in Sudoku the way use simple technique like elimination with only one choice, just like we did in initial exercises.# Question 2 (Diagonal Sudoku)
Q: How do we use constraint propagation to solve the diagonal sudoku problem?
A: A diagonal Sudoku puzzles have an extra layer of constraints, just like constraint of only unique 1-9 values are by default applied to Sudoku puzzles for rows, columns and 3*3 squares, similarly, both diagonals of 9*9 expect to have only 1-9 unique values.### Install
This project requires **Python 3**.
We recommend students install [Anaconda](https://www.continuum.io/downloads), 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.##### Optional: Pygame
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](http://www.pygame.org/download.shtml).
### Code
* `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 running `python 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.### Visualizing
To visualize your solution, please only assign values to the values_dict using the ```assign_values``` function provided in solution.py
### Submission
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.