I've been working on a Celtic sudoku program lately, and it's coming together nicely. So far, you can create, edit, delete, and solve sudokus, all from within the program. It opens with an OS menu, but the actual gameplay looks closer to an assembly program.

(The blue numbers are the default ones, and the salmon-colored box is the "cursor.")

I'm currently working on adding a feature that finds mistakes in the puzzle, and I eventually want to create a sudoku generator and solver. (I think it can be done, but it's probably too ambitious for an idiot like me.) Anyway, I'd love to see some feedback from you guys. I'll be posting some more updates as I continue to code.
The colors look useful, although I imagine those particular choices might be annoying to some users- it would be cool to give a couple options of color scheme.

My old sudoku game does some moderately simple puzzle generation, and on inspection JWinslow's nice-looking implementation uses a similar algorithm: if you start with a completed puzzle, it will always remain valid if you swap rows or columns in the same group of three rows/columns. At that point you can remove numbers to make it an incomplete puzzle, where the number of entries you remove roughly correlates with the puzzle difficulty. This approach is somewhat limited though, because it's difficult to provide some of the guarantees that make a puzzle 'nice' to a typical person if you randomly remove numbers: notably that the puzzle only has one solution and it doesn't require too much guessing to make progress.

I get the impression that published sudoku puzzles are typically graded on difficulty based on the strategies required to solve them, so it's difficult to generate a puzzle of a chosen difficulty and it's more common to generate many puzzles and select one of the chosen difficulty. To ensure a puzzle has only one solution, the puzzle generator needs to implement a solver algorithm that evaluates what options a given puzzle has for solutions. That's not a terribly complex algorithm it seems, but enough so that it may be difficult to write in TI-BASIC.

A feature that I'm not sophisticated enough as a sudoku solver to make much use of but that is key to the general algorithm is being able to note what numbers are valid in a given cell, so it might be nice to offer a scratchpad for the user to enter values associated with each cell. Or if you wanted to provide more of a pencil-and-paper experience, provide a way to "pencil in" a number that you think might be correct but doesn't contribute to checking whether the puzzle is correct- possibly make it a lighter color.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement