Sudoku Engine
A desktop application built using Java for PROG24178
WHY, OUT OF SO MANY OTHER COOL CHOICES, WAS MINE SUDOKU?
WHAT IS SUDOKU
Sudoku is an old number-placement puzzle, originating with recordable evidence during the 1800’s from an experiment with magic squares. The objective of Sudoku is to fill a grid with digits between 1-9 – the catch being that no two are to be repeated in a row, column, and individual 3×3 square. The end result can be compared to that of a Latin Square, a collection of elements with a nearly indistinguishable pattern.
MY HISTORY WITH SUDOKU
My first gaming device was a Nintendo DSi. Unfortunately, many of the mainstream games for it at that time were expensive. As such, I was left with the integrated Brain Age applications for a while. During this period, I picked up a love for Brain Age Express: Sudoku.
Throughout the life of my DSi, this was strangely my favourite, having invested enough hours to complete every puzzle from beginner to expert, reaching 100%.
Short to say; Sudoku holds a special place in my heart.
WHY SUDOKU
I chose Sudoku, because I wanted to create something that I would be proud enough to use, and something that can fill the void Windows Solitaire once held pre-8.
In addition, I chose Sudoku to challenge myself to create a proper and professional application, rather than a rough school project.
I have seen one too many projects comprised of random segments of code leeched from Stack Overflow, and while I understand this being a good step in learning, it is anything but practical.
MY GOAL WITH SUDOKU
My goal is to create a Sudoku interface, understand the code I am writing, and learn something new in the process.
For this project, I will be developing around these 6 core concepts:
- Generate & Solve Puzzles
The ability to generate a valid Sudoku grid, and perhaps replicate a few patterns. - Application Customization
Give the user the ability to change background images, font colors, color schemes, etc.
- E-Mail/Request for Help
Integrate SMTP with JavaMail so that players can share active puzzles.
- Symbols over Numbers
Use symbols in the place of numbers to create a more unique and less-boring user experience.
- Candidate Markup
Support the advance solving technique of cell/candi markup.
- Background Music
Because puzzles with music create the ultimate, relaxing experience.