123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361 |
- function res() {
- a0 = [];
- a1 = [];
- a2 = [];
- a3 = [];
- a4 = [];
- a5 = [];
- a6 = [];
- a7 = [];
- a8 = [];
- while (a0.length < 9) {
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a0.length; i++) {
- if (a == a0[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a0.push(a);
- }
- while (a1.length < 9) {
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a1.length; i++) {
- if (a == a1[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a1.push(a);
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a1[q] == a0[t]) {
- a1.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a1[q] == a0[t]) {
- a1.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a1[q] == a0[t]) {
- a1.length = 0
- }
- }
- }
- while (a2.length < 9) {
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a1.length; i++) {
- if (a == a2[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a2.push(a);
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a2[q] == a0[t] || a2[q] == a1[t]) {
- a2.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a2[q] == a0[t] || a2[q] == a1[t]) {
- a2.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a2[q] == a0[t] || a2[q] == a1[t]) {
- a2.length = 0
- }
- }
- }
- while (a3.length < 9) {
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a3.length; i++) {
- if (a == a3[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a3.push(a);
- for (c = 0; c < a3.length; c++) {
- if (a3[c] == a2[c] || a3[c] == a1[c] || a3[c] == a0[c]) {
- a3.length = 0
- }
- }
- }
- var mek = 0
- while (a4.length < 9) {
- mek++
- if (mek == 20000) {
- res()
- }
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a1.length; i++) {
- if (a == a4[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a4.push(a);
- for (c = 0; c < a3.length; c++) {
- if (a4[c] == a3[c] || a4[c] == a2[c] || a4[c] == a1[c] || a4[c] == a0[c]) {
- a4.length = 0
- }
- }
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a4[q] == a3[t]) {
- a4.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a4[q] == a3[t]) {
- a4.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a4[q] == a3[t]) {
- a4.length = 0
- }
- }
- }
- console.log(mek + "*444")
- var gek = 0
- while (a5.length < 9) {
- gek++
- if (gek == 160000) {
- res()
- break;
- }
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a5.length; i++) {
- if (a == a5[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a5.push(a);
- for (c = 0; c < a5.length; c++) {
- if (a5[c] == a4[c] || a5[c] == a3[c] || a5[c] == a2[c] || a5[c] == a1[c] || a5[c] == a0[c]) {
- a5.length = 0
- }
- }
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a5[q] == a3[t] || a5[q] == a4[t]) {
- a5.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a5[q] == a3[t] || a5[q] == a4[t]) {
- a5.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a5[q] == a3[t] || a5[q] == a4[t]) {
- a5.length = 0
- }
- }
- }
- console.log(gek + "*555")
- var fek = 0
- while (a6.length < 9) {
- fek++
- if (fek == 500000) {
- res();
- break;
- }
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a6.length; i++) {
- if (a == a6[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a6.push(a);
- for (c = 0; c < a3.length; c++) {
- if (a6[c] == a5[c] || a6[c] == a4[c] || a6[c] == a3[c] || a6[c] == a2[c] || a6[c] == a1[c] || a6[c] == a0[c]) {
- a6.length = 0
- }
- }
- }
- console.log(fek + "*666")
- var rek = 0
- while (a7.length < 9) {
- rek++
- if (rek == 500000) {
- res();
- break;
- }
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a7.length; i++) {
- if (a == a7[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a7.push(a);
- for (c = 0; c < a3.length; c++) {
- if (a7[c] == a6[c] || a7[c] == a5[c] || a7[c] == a4[c] || a7[c] == a3[c] || a7[c] == a2[c] || a7[c] == a1[c] || a7[c] == a0[c]) {
- a7.length = 0
- }
- }
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a7[q] == a6[t]) {
- a7.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a7[q] == a6[t]) {
- a7.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a7[q] == a6[t]) {
- a7.length = 0
- }
- }
- }
- console.log(rek + "*777")
- var sec8 = 0
- while (a8.length < 9) {
- sec8++
- if (sec8 == 700000) {
- res();
- break;
- }
- do {
- unic = true;
- a = Math.floor(Math.random() * 9) + 1;
- for (i = 0; i < a8.length; i++) {
- if (a == a8[i]) {
- // такое число уже было
- unic = false;
- break;
- }
- }
- } while (!unic) // повторить генерацию числа
- a8.push(a);
- for (c = 0; c < a5.length; c++) {
- if (a8[c] == a7[c] || a8[c] == a6[c] || a8[c] == a5[c] || a8[c] == a4[c] || a8[c] == a3[c] || a8[c] == a2[c] || a8[c] == a1[c] || a8[c] == a0[c]) {
- a8.length = 0
- }
- }
- for (q = 0; q < 3; q++) {
- for (t = 0; t < 3; t++)
- if (a8[q] == a6[t] || a8[q] == a7[t]) {
- a8.length = 0
- }
- }
- for (q = 3; q < 6; q++) {
- for (t = 3; t < 6; t++)
- if (a8[q] == a6[t] || a8[q] == a7[t]) {
- a8.length = 0
- }
- }
- for (q = 6; q < 9; q++) {
- for (t = 6; t < 9; t++)
- if (a8[q] == a6[t] || a8[q] == a7[t]) {
- a8.length = 0
- }
- }
- }
- console.log(sec8 + "*888")
- return arr = [a0, a1, a2, a3, a4, a5, a6, a7, a8]
- }
- res()
- function show() {
- var newTable = document.createElement("table");
- for (var yy = 0; yy <= 8; yy++) {
- var newRow = newTable.insertRow(yy)
- for (var xx = 0; xx <= 8; xx++) {
- var newCell = newRow.insertCell(xx)
- newCell.innerHTML = arr[yy][xx]
- newCell.width = 50;
- newCell.height = 50;
- }
- }
- document.body.appendChild(newTable)
- }
- show()
- function oddEvenClass(elem, color1, color2) {
- var c = document.getElementsByTagName(elem)
- for (i = 0; i < c.length; i++) {
- if (i % 3 == 0) {
- c[i].style.backgroundColor = color2;
- c[i].className = "color2";
- } else {
- c[i].style.backgroundColor = color1;
- c[i].className = "color1"
- }
- }
- }
- oddEvenClass("td", "green", "red")
|