(Not yet complete)
A Sudoku project created in Spring MVC.
See another version here, one with a generator: https://github.com/JohnsonHarleyR/Sudoku_Revised
(The solver is better on this one though.)
- I made a mistake with the .gitignore that I'll be careful about in future projects. The password is from class anyway though and will likely change in the future.
- Completed the POJOs and classes for cells, incomplete boards, and complete boards.
- Set up the display for the board, allowing a user to enter numbers where a square is blank.
- Created method that can find all possible solutions for a cell.
- Created algorithms that are capable of solving easy and medium level puzzles.
- Improve puzzle solver so that it can solve harder puzzles. (There's a bug to fix in "betterSolver" which might help.)
- Copy the basic algorithm from my sudoku_revised project that can generate a full Sudoku grid. (Use the solvers with this.)
- Create a method to copy the new generated puzzle onto a CompleteBoard object and store it in the database, in order that the original UnfinishedBoard object may be turned into a puzzle for the player to solve.
- Create a point counting system to determine the level of difficulty in solving a puzzle.
- Observe and write out the ranges of points to determine each difficulty level. (Test with pre-made puzzles to help determine these ranges.)
- Create a method that will generate a new puzzle, then remove cells until the new unfinished puzzle matches a desired difficulty range. Test solvability as you go. (Note: The simplerSolver should be able to solve easy puzzles while the betterSolver should be able to solve medium level puzzles, etc.)
- After all this, create a RequestMapping method (in SudokuController) that allows a player to submit answers to a puzzle after solving it. This method should compare their answers to the complete version of the puzzle to determine if it's correct or not.
- Tie everything together to create a playable game! Create all the buttons and wire them together for the player.
- Allow player to select the puzzle difficulty.
- Create methods and buttons to allow the player to save their game for later.
- Store created puzzles in database. Later allow program to select from database of pre-created puzzles sometimes. (Determine when and why.) This may make the program quicker.
- Validation, testing, bug fixing. (Ideally, this should be done as it goes, as well.)
- Create a nice layout, work on the appearance.
- Find ways to speed up the algorithms! (Look over notes about storage, datatypes, processing, etc.)
- (Maybe) Allow player to select a button to change the cell entry instead of having to type it? (Haven't decided.)
- Implement some JavaScript!
- Allow user to store possible solutions in cell with small text. (They can kinda type those in already, but not very well.)
- Only allow user to input one character in a cell. (They can only submit one character, but only allow them to type one as well... If this is done, definitely work on allowing the player to store possible solutions as they go.)
- Create a point system/high score table for the player to keep track of their stats.
- Implement some animation and sound! (Gotta learn to do this first lol. Maybe JavaScript? I have a new book.)
#sudoku #java #SpringMVC #project