Question
(Please read requirements of the program carefully screenshot your output ) Write a Java program that performs the following tasks: Display a friendly greeting to
(Please read requirements of the program carefully screenshot your output ) Write a Java program that performs the following tasks:
- Display a friendly greeting to the user
- Prompt the user for a filename (if the file wasnt provided on the command line)
- Accept that filename
- Attempt to open the file
- Read the 81 numbers in the file and populate a 9x9 table with them
- Note: the char * or - is used to designate an empty spot
because 0 is a valid entry in the hexoduko puzzle
- Display the contents of the file
- Solve the puzzle using the algorithm given
- Display the solved puzzle, or an appropriate message if no solution is found
The rules of Sudoku:
The integers 1-9 appear in a 9x9 grid. The grid is subdivided into nine 3x3 subgrids.
The thee Sudoku constraints are:
Each digit 1-9 appears in each row, without omissions or duplicates
Each digit 1-9 appears in each column, without omissions or duplicates
Each digit 1-9 appears in each 3x3 subgrid, without omissions or duplicates
Diagonal Rule Sudoku adds a fourth constraint:
Each digit 1-9 appears in each of the two long diagonals, without omissions or duplicates.
The isValidPuzzle method need check only these constraints; if they are satisfied, well call it a valid puzzle.
The input file will be 81 integers, space-delimited. Test your program with a variety of Sudoku puzzles. They are easily found on the net. How long does it take your program to solve the Worlds Hardest Sudoku? Or an empty puzzle?
Note that if you get the regular version working, the Super version only differs by a few lines in the isValidPuzzle method. However, be careful how you test it; most regular Sudoku puzzles arent diagonal-rule Sudokus and youll need to find specific test cases for them.
You can solve other number puzzles (like Numbrix) with this technique by dropping in the appropriate validator. The rest of the code is unchanged.
The standard solver is worth full credit; a diagonal-rule solver gets you an additional 10 points. For yet another ten points there is the 16x16 Hexudoku, with sixteen 4x4 regions and entries in hexadecimal (0-9 and A-F), and even the base-36 puzzle using 0-9 and A-Z.
Note: if you are thinking ahead you can write an entirely generic Sudoku solver that will handle 4x4, 9x9, 16x16, 25x25, and 36x36 puzzles (using 0-9 and A-Z gets you to base 36). The limitations are that you run out of symbols to represent the values if you go beyond base 36, and the algorithm is exponential so the solve times on larger puzzles can becomelarge.
Throw in a Numbrix solver for yet another 10 points. You can do Magic Squares as well, and pick up even more points.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started