Sudoku

Sudoku Engine

A desktop application built using Java for PROG24178Image of game

Github


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%.

Screenshot of Brain Age Express: Sudoku, IGN.com

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:

  1. Generate & Solve Puzzles
    The ability to generate a valid Sudoku grid, and perhaps replicate a few patterns.
  2. Application Customization
    Give the user the ability to change background images, font colors, color schemes, etc.
  1. E-Mail/Request for Help
    Integrate SMTP with JavaMail so that players can share active puzzles.
  1. Symbols over Numbers
    Use symbols in the place of numbers to create a more unique and less-boring user experience.
  1. Candidate Markup
    Support the advance solving technique of cell/candi markup.
  1. Background Music
    Because puzzles with music create the ultimate, relaxing experience.