View previous topic :: View next topic 
Author 
Message 
 omri
 Joined: 29 Jun 2007  Posts: 4  :   Items 

Posted: Fri Jun 29, 2007 3:03 pm Post subject: Soduku board generator PHP 


Hello, i am looking for a sudoku board generator in PHP
something that i can tell to give me a board with difficulty level that i give in advance
is such a PHP script available?
if now, if there a program that does that in any other language? 

Back to top 


 Ruud Site Admin
 Joined: 17 Sep 2005  Posts: 708  :  Location: Netherlands  Items 

Posted: Fri Jun 29, 2007 10:58 pm Post subject: 


Hi & welcome.
Holiday time is approaching and school assignments are replaced by holiday fun projects
Most generators just generate Sudokus of random difficulty. If you want Sudokus of a specific difficulty level, an online PHP generator will not make you very popular with your hosting provider, because such a program has to generate and solve puzzles in large quantities until a puzzle is found that meets your requirements. Depending on the number of expected visitors, it can bring the webserver down.
Here's how I do it:
1. Run a program overnight that generates 100,000  200,000 random Sudokus.
2. Run a batch solver the next night that solves and rates these puzzles. (SudoCue can do that)
3. Add all puzzles that meet one of your predefined difficulty levels to an online (MySQL) database.
4a. Have a PHP program that selects a random puzzle from this database when the user requests a puzzle of a certain difficulty level.
OR
4b. Make preselections from an offline puzzle database which are uploaded and made available for publication on specific dates.
Ruud _________________ Meet me at sudocue.net 

Back to top 


 omri
 Joined: 29 Jun 2007  Posts: 4  :   Items 

Posted: Sat Jun 30, 2007 7:01 am Post subject: 


Thanks Ruud.
is there a program that will create the boards for me and rate them at the same time?
or maybe a libraries that i can use?
GNOME sudoku does generate rated boards perty fast, so i thoght about using its python engine, what do you think?
Also, you recommended SoduCue for solving
what do you recommend for generating? 

Back to top 


 Ruud Site Admin
 Joined: 17 Sep 2005  Posts: 708  :  Location: Netherlands  Items 


Back to top 


 omri
 Joined: 29 Jun 2007  Posts: 4  :   Items 

Posted: Sat Jun 30, 2007 1:58 pm Post subject: Great 


Thanks alot Ruud
Guenther Stertenbrink's generator looks good
but the easest boards i get out of it are harder then the easy boards i see in software like gnomesudoku
thay use a pyhton script to generate the boards, did you happen to see it?
the other software has alot of option
but basicly it does the same for me, just create boards.
it dosnt rate them from what i see...
i think the python script is good. 

Back to top 


 omri
 Joined: 29 Jun 2007  Posts: 4  :   Items 

Posted: Sat Jun 30, 2007 5:58 pm Post subject: So i have the boards 


OK, so I'm figuring out how to make boards with the program for att (lots of options I'm still reading on)
my next question is how do i rate them to easy hard very hard....
the boards i have look something like this
4....8....1...4..5.2.7..8...7...9.12.4.....5.23.4...7...3..5.8.1..8...2....9....1
4....8....1...4..5.2.7..8...76....12.4.....5.23....97...3..5.8.1..8...2....9....1
4....8...81...4......79.8...7...9.12.4.....5.23.4...7...3.15......8...29...9....1
4...2.1.7...6.....3.5..1..65....9.1.....7...32....6.7.6.3..5..4...8.....7...4.5.1
2.8..9..4..1.....3...1...87.2..5.......31.....3..8.......5...98..2.....63.4..7..1
...9.68.2......56.7....2...8.5..49..1.......6..93..1.8...2....4.37......2.18.3...
.5.9.6..2........771...2.....5..49..12.....56..93..1.....2...344........2..8.3.9.
(just lines with the output)
what rater would you recommend? 

Back to top 


 Pat
 Joined: 06 Sep 2006  Posts: 128  :   Items 

Posted: Sun Jul 01, 2007 7:44 am Post subject: re: Glenn Fowler's software 


omri wrote:  OK, so I'm figuring out how to make boards with the program for att (lots of options I'm still reading on)
my next question is how do i rate them to easy hard very hard....
what rater would you recommend? 
yes, a vast number of options
it (Glenn Fowler's software) does also rate the puzzles  try without f to get the default output format  Quote:  .6.81.72.824..6........53...1....8...8.....1...9....4...21........6..235.98.42.6. # 277 FNTX C28.M/S2.p   the puzzle is followed by a "#" and then the first number is the rating
~ Pat 

Back to top 


 TriKri
 Joined: 30 Jul 2007  Posts: 5  :   Items 

Posted: Tue Jul 31, 2007 5:47 pm Post subject: 


Isn't it possible to geneate puzzles of certain difficulty levels? Why is it hard, is it because the difficulty will suddenly rice too much if you just remove one more clue, so it is hard to hit the right level, or is it because it is hard to judge at the same time as you solve it? Just curious. 

Back to top 


 gsf
 Joined: 18 Aug 2005  Posts: 408  :  Location: NJ USA  Items 

Posted: Tue Jul 31, 2007 8:48 pm Post subject: 


TriKri wrote:  Isn't it possible to geneate puzzles of certain difficulty levels? Why is it hard, is it because the difficulty will suddenly rice too much if you just remove one more clue, so it is hard to hit the right level, or is it because it is hard to judge at the same time as you solve it? Just curious. 
most random combinatorial objects exibit liittle structure
and structure is usually what makes those objects interesting
for sudoku "little structure" translates to "solves with singles"
i.e., most random sudoku puzzles will solve with singles
it is fairly difficult to program a generator to construct puzzles with specific structure
the typical method is to generate many random grids/puzzles and filter out the interesting ones
this trades off the complexity of programming specific methods for the simplicity of filtering
but at the expense of time  some structures may require many puzzles to be filtered
there are a few rules of thumb for generating the hardest sudoku
and those are encoded by the gH option of my solver
about the numerous options
my usual m.o. is the grand unix style  many small programs, each for a specific task
I opted for one sudoku monolith to keep the sw management to a minimum
i.e., executable and documentation in one place
Last edited by gsf on Tue Aug 28, 2007 1:40 pm; edited 1 time in total 

Back to top 


 jido
 Joined: 15 Aug 2007  Posts: 17  :   Items 

Posted: Tue Aug 28, 2007 11:47 am Post subject: 


gsf, how does your generator make puzzles with jellyfishes etc? Does it generate various grids and filters the first one that satisfies the options requested? 

Back to top 


 gsf
 Joined: 18 Aug 2005  Posts: 408  :  Location: NJ USA  Items 

Posted: Tue Aug 28, 2007 1:47 pm Post subject: 


jido wrote:  gsf, how does your generator make puzzles with jellyfishes etc? Does it generate various grids and filters the first one that satisfies the options requested? 
yes, it uses the filtering
the e expression option does filtering
each constraint/method has a single char name,
e.g., W for generalized xwing
W0 is the #steps that required generlized xwings
W1 is the #instances of generalized xwings
W2 is the #instances of size 2 generalized xwings (xwings)
W3 ... swordfish
W4 ... jellyfish
H4 ... hidden quad
so to net puzzles with at least one jellyfish and hidden quad


Back to top 


 Pat
 Joined: 06 Sep 2006  Posts: 128  :   Items 

Posted: Tue Sep 04, 2007 1:03 pm Post subject: re: "generalized Xwing" 


gsf wrote: 
W for generalized xwing W0 is the #steps that required generalized xwings
W1 is the #instances of generalized xwings
W2 is the #instances of size 2 generalized xwings (xwings)
W3 ... swordfish
W4 ... jellyfish 
hey gsf,
what you call "generalized Xwing" of order j
is the (unfinned) fish of order j
by the way, i don't see W0 and W1 in your manualeven W2, W3, and W4 are missing under "EXPRESSIONS" 

Back to top 


 gsf
 Joined: 18 Aug 2005  Posts: 408  :  Location: NJ USA  Items 

Posted: Tue Sep 04, 2007 1:56 pm Post subject: Re: re: "generalized Xwing" 


Pat wrote: 
what you call "generalized Xwing" of order j
is the (unfinned) fish of order j
by the way, i don't see W0 and W1 in your manualeven W2, W3, and W4 are missing under "EXPRESSIONS" 
hey Pat,
some of the nomenclature in my solver dates back to the first code
W was added 20051021 when I realized that X cycles were not general enough to capture all swordfish/jellyfish configurations
(I had originally picked X for cycles because I thought they would cover all Xwing orders)
man currently uses pure  maybe that weasles me out of conflict
Code:  Wn Row/col claim: order <= n (4) pure xwing/swordfish/jellyfish. 
you're great at history  when did fins come into the picture?
man also has this general intro
Code: 
EXPRESSIONS
Expressions are C language style signed long expressions on constraint
counters. A constraint counter is named by the constraint identifier
(case insensitive) and one optional digit. The counters for constraint c:
c The number of constraint applications.
c0 Equivalent to c.
c1 The number of constraint placements. Grouped modifications to a cell
candidate list count as one placement.
cn Structure order 2<=n<=9 count (e.g., pair, triple, xwing,
swordfish). c5..c9 are 0 for most constraints.

which applies to all constraint counters  only specific exceptions are listed
so W2 is the number of order 2 W's, i.e., the number of Xwings 

Back to top 


 Pat
 Joined: 06 Sep 2006  Posts: 128  :   Items 

Posted: Tue Sep 04, 2007 2:30 pm Post subject: re(2): "Generalized Xwing" 


gsf wrote: 
man currently uses pure  maybe that weasles me out of conflict
Code:  Wn Row/col claim: order <= n (4) pure xwing/swordfish/jellyfish. 
you're great at history  when did fins come into the picture?

your manual is indeed OK on this  my warning came in connexion with your post which used the dangerous term "Generalized Xwing"  a term which i suspect indicated finned Xwing at a time when higherorder fish were not yet known!
no i don't really know the history but it seems to me that the finned Xwing was an early discovery  earlier than Swordfish.now in the following post, is Sue De Coq referring to finned Xwing  or to the Swordfish (as we now know it), which is indeed a way of generalizing the Xwing yet is entirely different from the "Generalized Xwing"? i'm certainly confused! Sue De Coq (2005.Apr.27) wrote: 
You might have followed the discussions on this and the Sudoku Programmers forum about the Generalized XWings (or Swordfish) technique.

gsf wrote: 
man also has this general intro
Quote:  EXPRESSIONS
Expressions are C language style signed long expressions on constraint counters.
A constraint counter is named by the constraint identifier (case insensitive) and one optional digit.
The counters for constraint c:c The number of constraint applications.
c0 Equivalent to c.
c1 The number of constraint placements.
cn Structure order 2<=n<=9 count (e.g., pair, triple, xwing, swordfish). 
which applies to all constraint counters  only specific exceptions are listed

yes, my fault, obviously Hn Tn Wn are all explained by the introduction
~ Pat 

Back to top 


 gsf
 Joined: 18 Aug 2005  Posts: 408  :  Location: NJ USA  Items 

Posted: Tue Sep 04, 2007 3:48 pm Post subject: Re: re(2): "Generalized Xwing" 


Pat wrote: 
your manual is indeed OK on this  my warning came in connexion with your post which used the dangerous term "Generalized Xwing"  a term which i suspect indicated finned Xwing at a time when higherorder fish were not yet known!

thanks  I should have acknowledged that generalized was incorrect usage
I'll use pure to mean nofins
Quote: 
now in the following post, is Sue De Coq referring to finned Xwing  or to the Swordfish (as we now know it), which is indeed a way of generalizing the Xwing yet is entirely different from the "Generalized Xwing"? i'm certainly confused! 
my guess is swordfish because it goes on to describe how pappocom's sw at that time didn't recognize swordfish 

Back to top 


