Saturday, August 25, 2007

OSS Experience: Dancing Sudoku

The software I chose to download is Dancing Sudoku. As a popular riddle game, Sudoku has a fairly simple rule, yet its fun is easily addicting, just like the Tetris. The goal of Dancing Sudoku is to become a very fast and easy to use Java tool for generating and solving Sudoku puzzles. It includes 4x4, 9x9, and 16x16 dimensional Sudoku. The secret to create and solve all these different Sudokus is the usage of Donald Knuths exact cover algorithm.

As for the first prime directive, Dancing Sudoku has done a good job: create and solve Sudokus for the users. There are many Sudoku games available in books, newspaper, or some other paper medium. However, they can only provide limited amount of games to the users, whereas Dancing Sudoku can easily create as many games as the users want. Also, the Dancing Sudoku has a save/load functionality which allows the user to save different Sudoku games and load them to continue playing anytime they want.

Although Dancing Sudoku has done a good job for first prime directive, it sort of fails on the second prime directive. Unzipping the package is easy, yet to install and run the software is a little tricky, especially for people who have no experience with java or batch file. There is no real installation required to run the software because it is already packed up into one single jar file, which is an executable file, but this is not known to many people. Luckily the batch file is named "run", which is a big clue for starting up the application. The batch file basically executes a command to pack up all the class files into a jar file, yet the purpose of this batch file is uncertain for me, since the jar file is already provided. After starting up the application, it is quite easy to use. The interface is clearly layout, and there should be no difficulty for people who know how to play Sudoku to run the application.

Lastly for the third prime directive, since Dancing Sudoku is an open source project, its source code can be easily obtained from SourceForge website. However, I think the developer could have done a better job for providing more technical documentation, such as a list for the classes and functions. There is a PDF file which I think is served as the documentation, but it mainly contains the discussion of the algorithm for creating and solve the Sudoku-like problem. It is more of an academic paper. Despite the lack of a detailed documentation, this application is actually very small, and it only contains five source java files. An experience programmer who understands the algorithm it used should be able to modify and improve the application quickly.

No comments: