Stroy,
Судоку, простая генерация в лоб
![](images/smilies/smile.gif)
... если вы видите число 300000 значит вам не повезло.
<!DOCTYPE HTML>
<html>
<head>
<title>sudoku</title>
<meta charset="utf-8">
</head>
<body>
<script>
Array.prototype.shuffle = function() {
for (var a = this.length - 1; 0 < a; a--) {
var b = Math.floor(Math.random() * (a + 1)),
c = this[b];
this[b] = this[a];
this[a] = c
}
return this
};
for (var arr = [], b = [], obj = {}, column = {}, d = 0, i = 0; 9 > i; i++)
b.push(i + 1), obj[i] = {}, column[i] = {};
for (var k = 0; 9 > k;) {
b = b.slice().shuffle();
var a = b.every(function(c, e, f) {
f = (e / 3 | 0) + 3 * (k / 3 | 0);
return !obj[f][c] && !column[e][c]
});
d++;
if (300000 <= d) break;
a && (arr.push(b), b.forEach(function(c, e, f) {
obj[(e / 3 | 0) + 3 * (k / 3 | 0)][c] = column[e][c] = !0
}), k++)
};
document.write(arr.join('<br>')+ '<br>'+d)
</script>
</body>
</html>