== Building sodoku boards == 

 I've found a method to generate sudokus which is extremely easy, although I have not found any reference to it in the web. Please feel free to use it.Just mention it as the "Peraita method". That'll make my mother very happy... 

 1. Generate a random permutation of the 1-9 digits. Let's take 123456789. But 298413765, or any other, would be perfect. 

 2. Assume that the 9 3x3 "quadrants" are named Q11, Q12, Q13, Q21, etc. according to their row.column placement. Each cell of each quadrant (81 in total) can be named as Q11-11, Q11-12, Q11-13... Q33-31, Q33-32, Q33-33. 

 3. Fill Q11 with "123456789", left-to-right, top-to-bottom. Thus, Q11-11=1, Q11-33=9. 

 4. Rotate-left "123456789" by one position, obtaining "234567891". Fill Q21 with that sequence: i.e. Q21-11=2, Q21-33=1. 

 5. Rotate-left the last sequence again, you'll get "345678912". Fill Q31; Q31-11=3, Q31-33=2. 

 6. Repeat this process with all 9 quadrants, going top-to-bottom and left-to-right. At the end, Q33-11=9, Q33-33=8. 

 7. I call the above procedure the "seeding" of the board. No matter what permutation of 1-9 you start with, you'll get a "valid" final board. 

 8. In the board you've just built many 3-long letter combinations are repeated, i.e. it is a very "obvious" board. You'll have to "shuffle" it. There are a number of "isomorphic" (that maintain the shape) transformations that you can use. Simmetries around the first diagonal (going from Q11-11 to Q33-33), the second diagonal (Q13-13 to Q31-31), the vertical axis (Q12-12 to Q32-12) and the horizontal axis (Q21-21 to Q23-23) are "global" transformations and I call them D1, D2, A1 and A2 respectively. 
 "Local" transformations consist of row or column swapping between two rows or columns belonging to one set of horizontal of vertical quadrants. Thus, columns 2 and 3 can be swapped, just as rows 4 and 6, for instance. All these transformations maintain the "validity" of the board. 
 These "shuffling" transformations can be applied in any number, in any order. You can force digists to move to designated places. 

 9. Now, you've got it! A beautiful filled-up Sudoku puzzle. 

 BREAK: I have a couple of questions here: 
 a. Can all valid sudoku boards be generated with the above algorithm? 
 b. Excluding repetition of three digit sequences (i.e. 345 or 678 appearing in more than one place), are some of the generated solutions intrinsically easier/harder than others?  

 10. Aha!! Now comes the last process... That of transforming the solution into a problem. You'll do that by blanking ("prunning") some of the cells. But how many? When can you stop? How do you make sure you've not blanked one too many and created a multiple-solution problem? I'm still working on these issues. Any contribution will be welcome. 

 BTW: the above method works nicelly for boards of any n2 size.