sfuhrm / sudoku

A very fast Java Sudoku library implementation along with a command line client
GNU Lesser General Public License v3.0
19 stars 8 forks source link

Approach to set the riddle difficulty by the amount of empty fields + column separator for Formatters (since S16x16 and S25x25 are hard to read/parse without column separator) #6

Closed Lemkinator closed 1 year ago

Lemkinator commented 1 year ago

Since S16x16 and S25x25 are hard to read/parse i added a column separator in Formatter

(i adjusted the PlainTextFormatter and set the default to " ", but I have not looked intensively at the other formatters, the maybe need to be adjusted aswell).

Approach to set the riddle difficulty by the amount of empty fields:

I overloaded the createRiddle Function, so the maximum amount of numbers to be cleared can be passed. I also added some sample values for different schemas and difficulties.

As described in javadoc: The maximum amount of numbers to remove from a 16x16 Sudoku with the current algorithm in a reasonably good time is ~140. The maximum amount of numbers to remove from a 25x25 Sudoku with the current algorithm in a reasonably good time is ~280.

At least it is now possible to create Riddles for 16x16 or 25x25 Sudokus:

image

sfuhrm commented 1 year ago

Thanks for the PR! Very interesting to see that :).

Can you please remove/revert the auto-formatter-noise from the PR? Squashing the commits that have no different commit messages would make also sense. Besides that, I didn't find changes to the formatters... may be you forgot to add. Would be nice to have this in a different PR. I am a big fan of baby steps ... eh PRs :).

I'll do a in-depth review when the auto-formatter-noise is gone.