This is a "sprint" project I put together in my first semester of CS courses in order to learn how to functionally implement an algorithm (in this case, recursive backtracking), using appropriate object oriented design in order to facilitate future development, and to write my first GUI with the Java Swing GUI framework.
- Refactor, refactor, refactor -- there are many different approaches to Swing GUI implementations, and I am unsure if the Princeton resources I used are best for learning or best practice.
- Implement a sudoku generator
- Implement different solving algorithms (dancing links) and/or optimizations (constraint propagation)
- Ability to compare different solving algorithms
- Welcome with selection of different Sudoku dimensions
