As part of my Computer Science Degree, one of my assignments was to design and build a software product - a game.
This project contains two stages:
- In Stage 1, you will need to develop a Command-line User Interface (CUI) version of the product. You will need to use text files to store input and output data from the program.
- In Stage 2 (this repo), you will upgrade the product to a Graphical User Interface (GUI) version. Meanwhile, you will include a Database component to the product, implement design patterns and include necessary unit tests.
- Must be developed using Java in the NetBeans IDE.
- Be bug-free and feature robust error handling.
- Should be easy to build (no complex build configurations).
- Needs to use Apache Derby (JavaDB) as the DBMS for the project.
- Must contain basic unit tests for a few important functionalities of the program.
Expand Criteria & Requirements
Completed | Requirement |
---|---|
✔️ | User Interface (GUI)
|
✔️ | Database
|
✔️ | Software functionality and usability
|
✔️ | Software design & implementation
|
✔️ | Unit Testing
|
The Home Screen is shown after a user has logged in. From here, various application functions can be called and a list of high scores seen.
Inside the Sudoku Game, players are presented with a grid of chosen difficulty. Cell highlighting allows players to visually see all cells related to the selected one, as per Sudoku rules. Meanwhile, a timer keeps track of the game duration. NOTE: At any point in the game, you may exit. But unlike the CUI Version from Stage 1, your game will not be saved!
Sometimes players get stuck and need a hint. Based on the difficulty of the grid, a certain number of hints are available throughout the game to fill in a random cell that does not yet contain a digit. Don't run out!
Unsure of how to play? From the home screen, or at any time during a game, players may view the Sudoku Rules. Read quickly because the timer isn't stopping for you!
When a Sudoku puzzle is filled (provided there are no errors - these are caught throughout the game), players are presented with game statistics and awarded points depending on their grid's difficulty.
Sudoku is great when competing with friends, this game enables players to create an account and sign in so that every puzzle completed rewards points. This is where the database component comes in.
Sign Up | Log In |
---|---|
At signup/login duplicate email addresses and invalid credentials are not allowed.
Duplicate Email | Invalid Credentials |
---|---|
If you have incorrectly configured the Apache Derby client required for this project, an error may be thrown preventing the game from starting. Only one instance of the Sudoku Game is currently supported.
While this is not an active project of mine, I would love to hear from you. Feel free to submit a Pull Request if you can improve this repository, or open an issue should you encounter a bug. 🐞