Sudoku Py / C++11 / D?

Era Scarecrow via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu May 25 23:26:49 PDT 2017


On Wednesday, 15 August 2012 at 20:13:10 UTC, Era Scarecrow wrote:
> On Wednesday, 15 August 2012 at 15:39:26 UTC, ixid wrote:
>> Could you supply your code? Which one are you using as the 
>> hardest? If you're solving the 1400 second one in 12 seconds 
>> that's very impressive, I can't get it below 240 seconds.
>
> Expanded to 225 lines after comments and refactoring for names. 
> I think it should be fairly easy to follow.
>
> https://github.com/rtcvb32/D-Sudoku-Solver

  While an old thread, I decided to try a different approach to 
sudoku solving. In no way is this better, just a different 
approach. At 200 lines (needs some heavy unittests added, but 
appears to work).

  Using a sorting method to solve the puzzle. The idea is to take 
your puzzle, sort it by weight (how many possible numbers) and 
only take guesses with the smallest number of combinations 
possible, meaning any puzzle with 1 solution won't take long. The 
idea behind this method is to ignore combinations that might 
never come up; Afterall if you have a block with 2 possibilities, 
why start brute forcing the one with 7? Fewer wasted cycles. Yes 
it still uses brute force and built-in backtracking (and also 
outputs all combinations of a solution).

  Trying the REALLY REALLY hard one from before? (17 numbers) 
Well... I had it run in the background for a few hours, and got 
69,555,823 answers before the output (610Mb compressed, 11,067Mb 
uncompressed) simply filled up the free space on my ramdrive thus 
crashing the program.


More information about the Digitalmars-d-learn mailing list