The goal of the thesis is to study how to create and solve a sudoku puzzle. We will look into the individual components which every sudoku puzzle contains. Furthermore, we will take a closer look into the exact set cover problem and how sudoku puzzle can be represented as one. We will present how to represent a sudoku puzzle so that our program can use it for solving. Sudoku solver was created using "Algorithm X'', using Java programming language. We will get better acquainted with an alternative way to implement "Algorithm X'', the "Dancing Links'' method which unfortunately was not implemented. With the help of time and space complexity analysis we will compare both implementations and also have a closer look at the limitations of our implementation. After that, we will have a look at how to create a custom sudoku grid which consists of multiple other sudoku grids. We also mention problems which we can encounter during the creation. Lastly, a simple user interface proposal will be introduced, using HTML and javascript, which enables users to create any kind of sudoku they wish.
|