From: "M. Edward (Ed) Borasky" <znmeb / cesmail.net>
Subject: Re: Sodoku-Generator
Date: Mon, 20 Feb 2006 04:48:30 +0900

Hi Edward,

 Thank you for your fast reply ! :O)

 I found nothing at RAA/Rubyforge due to a typo I did:
 S_u_doku is correct...I searched for "S_o_doku"....

 Sorry for the trouble...

 (rsudoku did not start, because it doesn't find a certain preference file
 in my $HOME. INSTALL says: Simpy start ruby rsudoku.rb.

 I will check this..

 Ruby!
 mcc
   

> >From the R library package "sudoku":
> 
> generateSudoku            package:sudoku            R Documentation
> 
> Randomly Generate a Sudoku Puzzle Grid
> 
> Description:
> 
>      Creates a 9x9 Sudoku grid suitable for use by 'playSudoku'.
> 
> Usage:
> 
>        generateSudoku(Nblank=50, print.it=FALSE)
> 
> Arguments:
> 
>   Nblank: Number of cells to blank out
> 
> print.it: Logical.  If true, print result to screen.
> 
> Details:
> 
>      The basic algorithm is to start with a 'primordial' Sudoku grid,
>      swap around some rows and columns, then blank out some cells.
> 
> Value:
> 
>      A matrix, representing a 9x9 Sudoku grid.
> 
> Author(s):
> 
>      Curt Seeliger <Seeliger.Curt / epamail.epa.gov>, Henrik Bengtsson
>      <hb / maths.lth.se>, and David Brahm <brahm / alum.mit.edu>
> 
> References:
> 
>      <URL: http://sudoku.com/>
> 
> Examples:
> 
>      generateSudoku(print.it=TRUE)
> 
> Here's the function definition for those who understand R. I might make
> pseudo-code from this if I have the time:
> 
> generateSudoku <- function(Nblank=50, print.it=FALSE) {
>   z <- c(1:9,4:9,1:3,7:9,1:6,2:9,1,5:9,1:4,8:9,1:7,3:9,1:2,6:9,1:5,9,1:8)
>   z <- matrix(sample(9)[z], 9,9)
>   for (i in 1:5) z <- z[replicate(3, sample(3)) + 3*rep(sample(0:2),
> each=3),
>                         replicate(3, sample(3)) + 3*rep(sample(0:2),
> each=3)]
>   for (bi in seq(0,6,3)) for (bj in seq(0,6,3)) {
>     idx <- data.matrix(expand.grid(bi + 1:3, bj + 1:3))
>     z[idx[sample(1:9, Nblank%/%9), ]] <- 0
>   }
>   ## Depopulate (if we had a test for uniqueness, we'd put it here):
>   while (sum(!z) < Nblank) z[matrix(sample(9,2), 1)] <- 0
>   if (print.it) printSudoku(z)
>   z
> }
> 
> 
> 
> Meino Christian Cramer wrote:
> > Hi,
> >
> >  with Google I found a Quiz about a Sodoku-solver, but I didn't find a
> >  Sodoku generator. Also RAA and RubyForge did not list one.
> >
> >  Is there any out there ? May be one, which also generated a solution
> >  for the generated Sodokus?
> >
> >  Kind regards,
> >  mcc
> >
> >
> >   
> 
> -- 
> M. Edward (Ed) Borasky
> 
> http://linuxcapacityplanning.com
> 
>