Сообщение от shoopik
|
Чтобы в каждой строке/столбце не было повторений, и внутри боксов 3на3.
|
Оно?
var arr=[
[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
[ 2, 2, 4, 5, 6, 7, 8, 9, 1 ],
[ 3, 4, 5, 6, 7, 8, 9, 1, 2 ],
[ 4, 5, 6, 7, 8, 9, 1, 2, 3 ],
[ 5, 6, 7, 8, 9, 1, 2, 3, 4 ],
[ 6, 7, 8, 9, 1, 2, 3, 4, 5 ],
[ 7, 8, 9, 1, 2, 3, 4, 5, 6 ],
[ 8, 9, 1, 2, 3, 4, 5, 6, 7 ],
[ 9, 1, 2, 3, 4, 5, 6, 7, 8 ]
];
for (var i=0; i<arr.length; i++) {
var y=Math.floor(i/3)*3;
var x=(i%3)*3;
var ok=box(y,x);
if (!ok) {
alert('Ошибка!');
break;
};
};
if (ok) {
alert('Все отлично.');
};
function box(Y,X) {
for (var i=0; i<3; i++) {
var o={};
for (var j=0; j<3; j++) {
var val=arr[Y+i][X+j];
if (o[val]) {
alert(Y+' - '+X);
return false;
} else {
o[val]=true;
};
};
};
for (var i=0; i<3; i++) {
var o={};
for (var j=0; j<3; j++) {
var val=arr[Y+j][X+i];
if (o[val]) {
alert(Y+' - '+X);
return false;
} else {
o[val]=true;
};
};
};
return true;
};