Working on NeoSudoku

This is the current J2ME/MIDP project I’ve been working on at my spare time since the past weekend: An implementation of the known game Sudoku.

It’s not published yet, because I want to enhance it a bit more and at this moment it contains some sudokus borrowed from a copyrighted book, so publishing wouldn’t be a good idea…
Currently the project is at version 1.1, having the following features:

  • Complete implementation of the game rules, with detection of illegal number placement and end of game. The game is playable.
  • Several pre-stored sudokus can be chosen for playing.
  • Special hints available:
    • List of available values that can be put into a square.
    • Board map showing the number of values eligible to be put on each square (good to detect the squares that can only be filled with one single value).
  • Special solvind tools avaliable:
    • “Reduce” tool, that detects all free squares with only one possible value, fills them and repeats the process until no more of such squares are remaining.
    • Limited “solve” tool, that tries to solve the sudoku using a backtracking algorithm. Unfortunately, the phone goes out of memory very soon, so this tool is very poor. I’m working to optimize this algorithm in order to enhace the decission path and to lower the memory footprint of the “context” of each step.
  • Tested on Nokia 3100 and Sony Ericsson T630.

From now on, I would like to enhance the following points to reach version 1.2:

  • Optimize the solving algorithm until it’s useful.
  • Write a sudoku editor and give the user the ability to store input sudokus into RMS memory (resource management system) on the phone.
  • Make possible for the user to push and pop the current game state on a stack, to do backtracking by hand.

And now, enjoy some screenshots. I’ll keep you informed. Stay tuned…

NeoSudoku1.png NeoSudoku2.png NeoSudoku3.png NeoSudoku4.png NeoSudoku5.png NeoSudoku6.png NeoSudoku7.png