Write a program to solve a Sudoku puzzle.
Input
One 9×9 Sudoku puzzle. “.” is used to indicate a blank.
Ouput
One 9×9 solved Sudoku puzzle. All “.” to be replaced with the correct digit.
Correctness (10 pts)
[no partial credit and required for any other credit]
Your program must produce the correct output from the provided input.
Use Google Groups to reach consensus on the acceptance tests.
Your program must pass the provided unit tests. Use Google Groups to reach consensus on the unit tests.
Additional Correctness (10 pts)
Your program must pass additional acceptance tests created by the grader.
Your program must pass additional unit tests created by the grader.
Testing (10 pts)
Create a set of additional unit tests in TestSudoku.h and TestSudoku.out.
You must use Valgrind and get no errors.
Design (5 pts)
You must not use new or delete or malloc() or free().
You must use assert() to check pre-conditions, post-conditions, argument validity, return-value validity, and invariants.
Worry about this last, but your program should run as fast as possible and use as little memory as possible.
Documentation (5 pts)
You must edit Sudoku.txt with a plain-text editor. Do not use Word!
You must use Google Project’s wiki to document your program.
You must use Doxygen to document interfaces:
- variables
- functions
- classes
- methods
- parameters (@param)
- returns (@return)
- exceptions (@throws)
You must use C-style (/*…*/) or C++-style (//…) comments to document implementations.
Follow any coding convention, but be consistent. Use good variable names. Write readable code with good indentation, blank lines, and blank spaces.
Source Control (5 pts)
You must use a source control system to manage your files.
Bug Tracking (5 pts)
You must use Google Project’s bug tracker to manage your bugs.
Submission
Every individual must submit the following to Turnin:
| Type | Name | Description |
|---|---|---|
| overview | Sudoku.txt | Overview of the submission. |
Every pair must submit the following to Turnin:
| Type | Name | Description |
|---|---|---|
| documentation | html |
Documentation of the program, produced by Doxygen. |
| driver | main.c++ | Definition of the function main(). |
| implementation | Array.h | Definition of the Array class. |
| Sudoku.h | Definition of the Sudoku class. | |
| tests | TestSudoku.h | Definition of the CppUnit tests. |
| input | Sudoku.in |
Input of the program, acceptance tests. |
| output | TestSudoku.out |
Output of the program, CppUnit tests with Valgrind. |
| source control | Sudoku.log | Log of the commits. |
Every individual must post the following to their UT Blog:
- predicted number of hours to complete
- actual number of hours to complete
- TestSudoku.out (as a page)
Every pair must post the following to their Google Project:
- a wiki page for an overview of the whole system
- a set of bug issues in the bug tracker