var board = []; var i = Number(i); var j, a, error, xmove, omove, xwin, owin, draw, start; var xwin = 0, owin = 0, draw = 0, bcount, endgame = false; for (i = 1; i < 10; i++) board[i] = i; rows = 4; columns = 3; function drawboard(ary) { // Empty previous board document.getElementById("tic").innerHTML = ""; // Create an empty string var str = ""; // Add the start of the table to the string str += ''; // Iterate through each row for (var p = 1, q = 1; p < rows; p++) { // Add the start of a new row to the string str += ""; // Iterate through each cell in the row for (var j = 0; j < columns; q++, j++) { // Add the cell to the string with its ID and content str += '"; } // Add the end of the row to the string str += ""; } // Add the end of the table to the string str += "
' + ary[q] + "
"; // Update the board's HTML with the new table document.getElementById("tic").innerHTML = str; } function score() { // Reset score element document.getElementById("score").innerHTML = ""; // Generate score string var score = "
X Wins = " + xwin + "
O Wins = " + owin + "
Draws =  " + draw; // Display score in score element document.getElementById("score").innerHTML = score; } drawboard(board); score(); var turn = "X"; var cellfunc = [ function cell0() {}, function cell1() { if (board[1] == 1 && endgame == false) { board[1] = turn; document.getElementById("cell1").innerHTML = turn; document.getElementById("cell1").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell2() { if (board[2] == 2 && endgame == false) { board[2] = turn; document.getElementById("cell2").innerHTML = turn; document.getElementById("cell2").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell3() { if (board[3] == 3 && endgame == false) { board[3] = turn; document.getElementById("cell3").innerHTML = turn; document.getElementById("cell3").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell4() { if (board[4] == 4 && endgame == false) { board[4] = turn; document.getElementById("cell4").innerHTML = turn; document.getElementById("cell4").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell5() { if (board[5] == 5 && endgame == false) { board[5] = turn; document.getElementById("cell5").innerHTML = turn; document.getElementById("cell5").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell6() { if (board[6] == 6 && endgame == false) { board[6] = turn; document.getElementById("cell6").innerHTML = turn; document.getElementById("cell6").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell7() { if (board[7] == 7 && endgame == false) { board[7] = turn; document.getElementById("cell7").innerHTML = turn; document.getElementById("cell7").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell8() { if (board[8] == 8 && endgame == false) { board[8] = turn; document.getElementById("cell8").innerHTML = turn; document.getElementById("cell8").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, function cell9() { if (board[9] == 9 && endgame == false) { board[9] = turn; document.getElementById("cell9").innerHTML = turn; document.getElementById("cell9").style.color = "#00007A"; changeTurn(); checkO(); checkX(); draw1(); } }, ]; function changeTurn() { if (turn == "X") { // document.getElementsByTagName("td").style.color = "#19FF19"; turn = "O"; } else { turn = "X"; } } function game() { if (start == true) { removeevent(); start = false; reset(); drawboard(board); } start = true; document.getElementById("level").innerHTML = "

LEVEL: MULTIPLAYER

"; endgame = false; turn = "X"; reset(); document.getElementById("cell1").onclick = cellfunc[1]; document.getElementById("cell2").onclick = cellfunc[2]; document.getElementById("cell3").onclick = cellfunc[3]; document.getElementById("cell4").onclick = cellfunc[4]; document.getElementById("cell5").onclick = cellfunc[5]; document.getElementById("cell6").onclick = cellfunc[6]; document.getElementById("cell7").onclick = cellfunc[7]; document.getElementById("cell8").onclick = cellfunc[8]; document.getElementById("cell9").onclick = cellfunc[9]; document .getElementById("cell1") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell2") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell3") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell4") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell5") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell6") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell7") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell8") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); document .getElementById("cell9") .addEventListener("click", function gameend() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; }); } function game1() { if (start == true) { removeevent(); start = false; reset(); drawboard(board); } start = true; document.getElementById("level").innerHTML = "

LEVEL: EASY

"; turn = "X"; endgame = false; reset(); document.getElementById("cell1").onclick = cellfunc[1]; document.getElementById("cell2").onclick = cellfunc[2]; document.getElementById("cell3").onclick = cellfunc[3]; document.getElementById("cell4").onclick = cellfunc[4]; document.getElementById("cell5").onclick = cellfunc[5]; document.getElementById("cell6").onclick = cellfunc[6]; document.getElementById("cell7").onclick = cellfunc[7]; document.getElementById("cell8").onclick = cellfunc[8]; document.getElementById("cell9").onclick = cellfunc[9]; document.getElementById("cell1").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell2").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell3").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell4").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell5").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell6").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell7").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell8").addEventListener("click", function error() { ogame1(); }); document.getElementById("cell9").addEventListener("click", function error() { ogame1(); }); function ogame1() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; if (endgame == false) { error = 1; while (error == 1) { error = 0; omove = omovenum(1, 9); if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } document.getElementById("cell" + omove).style.color = " #19FF19"; document.getElementById("cell" + omove).innerHTML = turn; board[omove] = turn; changeTurn(); checkO(); checkO(); draw1(); if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; } } } function game2() { if (start == true) { removeevent(); start = false; reset(); drawboard(board); } start = true; document.getElementById("level").innerHTML = "

LEVEL: MEDIUM

"; turn = "X"; endgame = false; reset(); document.getElementById("cell1").onclick = cellfunc[1]; document.getElementById("cell2").onclick = cellfunc[2]; document.getElementById("cell3").onclick = cellfunc[3]; document.getElementById("cell4").onclick = cellfunc[4]; document.getElementById("cell5").onclick = cellfunc[5]; document.getElementById("cell6").onclick = cellfunc[6]; document.getElementById("cell7").onclick = cellfunc[7]; document.getElementById("cell8").onclick = cellfunc[8]; document.getElementById("cell9").onclick = cellfunc[9]; document.getElementById("cell1").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell2").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell3").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell4").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell5").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell6").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell7").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell8").addEventListener("click", function error() { ogame2(); }); document.getElementById("cell9").addEventListener("click", function error() { ogame2(); }); function ogame2() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; if (endgame == false && turn == "O") { error = 1; while (error == 1) { error = 0; if (board[1] == "X" && board[2] == "X" && board[3] == 3) { omove = 3; break; } //missing right end (horizontal) if (board[4] == "X" && board[5] == "X" && board[6] == 6) { omove = 6; break; } if (board[7] == "X" && board[8] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[3] == "X" && board[2] == 2) { omove = 2; break; } //missing middle (horizontal) if (board[4] == "X" && board[6] == "X" && board[5] == 5) { omove = 5; break; } if (board[7] == "X" && board[9] == "X" && board[8] == 8) { omove = 8; break; } if (board[2] == "X" && board[3] == "X" && board[1] == 1) { omove = 1; break; } //missing left end (horizontal) if (board[5] == "X" && board[6] == "X" && board[4] == 4) { omove = 4; break; } if (board[8] == "X" && board[9] == "X" && board[7] == 7) { omove = 7; break; } if (board[1] == "X" && board[4] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom one (vertical) if (board[2] == "X" && board[5] == "X" && board[8] == 8) { omove = 8; break; } if (board[3] == "X" && board[6] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[7] == "X" && board[4] == 4) { omove = 4; break; } //missing middle one (vertical) if (board[2] == "X" && board[8] == "X" && board[5] == 5) { omove = 5; break; } if (board[3] == "X" && board[9] == "X" && board[6] == 6) { omove = 6; break; } if (board[4] == "X" && board[7] == "X" && board[1] == 1) { omove = 1; break; } //missing top one (vertical) if (board[5] == "X" && board[8] == "X" && board[2] == 2) { omove = 2; break; } if (board[6] == "X" && board[9] == "X" && board[3] == 3) { omove = 3; break; } if (board[1] == "X" && board[5] == "X" && board[9] == 9) { omove = 9; break; } //missing bottom (diagnal)\ if (board[1] == "X" && board[9] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal)\ if (board[5] == "X" && board[9] == "X" && board[1] == 1) { omove = 1; break; } //missing top (diagnal) \ if (board[3] == "X" && board[5] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal) / if (board[3] == "X" && board[7] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal) / if (board[5] == "X" && board[7] == "X" && board[3] == 3) { omove = 3; break; } //missing top (diagnal) / else { omove = omovenum(1, 9); } if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } document.getElementById("cell" + omove).style.color = " #19FF19"; document.getElementById("cell" + omove).innerHTML = turn; board[omove] = turn; changeTurn(); checkO(); checkO(); draw1(); if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; } } } function game3() { if (start == true) { removeevent(); start = false; reset(); drawboard(board); } start = true; document.getElementById("level").innerHTML = "

LEVEL: HARD

"; turn = "X"; endgame = false; reset(); document.getElementById("cell1").onclick = cellfunc[1]; document.getElementById("cell2").onclick = cellfunc[2]; document.getElementById("cell3").onclick = cellfunc[3]; document.getElementById("cell4").onclick = cellfunc[4]; document.getElementById("cell5").onclick = cellfunc[5]; document.getElementById("cell6").onclick = cellfunc[6]; document.getElementById("cell7").onclick = cellfunc[7]; document.getElementById("cell8").onclick = cellfunc[8]; document.getElementById("cell9").onclick = cellfunc[9]; document.getElementById("cell1").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell2").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell3").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell4").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell5").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell6").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell7").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell8").addEventListener("click", function error() { ogame3(); }); document.getElementById("cell9").addEventListener("click", function error() { ogame3(); }); function ogame3() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; if (endgame == false && turn == "O") { error = 1; while (error == 1) { error = 0; if (board[1] == "O" && board[2] == "O" && board[3] == 3) { omove = 3; break; } //missing right end (horizontal) if (board[4] == "O" && board[5] == "O" && board[6] == 6) { omove = 6; break; } if (board[7] == "O" && board[8] == "O" && board[9] == 9) { omove = 9; break; } if (board[1] == "O" && board[3] == "O" && board[2] == 2) { omove = 2; break; } //missing middle (horizontal) if (board[4] == "O" && board[6] == "O" && board[5] == 5) { omove = 5; break; } if (board[7] == "O" && board[9] == "O" && board[8] == 8) { omove = 8; break; } if (board[2] == "O" && board[3] == "O" && board[1] == 1) { omove = 1; break; } //missing left end (horizontal) if (board[5] == "O" && board[6] == "O" && board[4] == 4) { omove = 4; break; } if (board[8] == "O" && board[9] == "O" && board[7] == 7) { omove = 7; break; } if (board[1] == "O" && board[4] == "O" && board[7] == 7) { omove = 7; break; } //missing bottom one (vertical) if (board[2] == "O" && board[5] == "O" && board[8] == 8) { omove = 8; break; } if (board[3] == "O" && board[6] == "O" && board[9] == 9) { omove = 9; break; } if (board[1] == "O" && board[7] == "O" && board[4] == 4) { omove = 4; break; } //missing middle one (vertical) if (board[2] == "O" && board[8] == "O" && board[5] == 5) { omove = 5; break; } if (board[3] == "O" && board[9] == "O" && board[6] == 6) { omove = 6; break; } if (board[4] == "O" && board[7] == "O" && board[1] == 1) { omove = 1; break; } //missing top one (vertical) if (board[5] == "O" && board[8] == "O" && board[2] == 2) { omove = 2; break; } if (board[6] == "O" && board[9] == "O" && board[3] == 3) { omove = 3; break; } if (board[1] == "O" && board[5] == "O" && board[9] == 9) { omove = 9; break; } //missing bottom (diagnal)\ if (board[1] == "O" && board[9] == "O" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal)\ if (board[5] == "O" && board[9] == "O" && board[1] == 1) { omove = 1; break; } //missing top (diagnal) \ if (board[3] == "O" && board[5] == "O" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal) / if (board[3] == "O" && board[7] == "O" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal) / if (board[5] == "O" && board[7] == "O" && board[3] == 3) { omove = 3; break; } //missing top (diagnal) / if (board[1] == "X" && board[2] == "X" && board[3] == 3) { omove = 3; break; } //missing right end (horizontal) if (board[4] == "X" && board[5] == "X" && board[6] == 6) { omove = 6; break; } if (board[7] == "X" && board[8] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[3] == "X" && board[2] == 2) { omove = 2; break; } //missing middle (horizontal) if (board[4] == "X" && board[6] == "X" && board[5] == 5) { omove = 5; break; } if (board[7] == "X" && board[9] == "X" && board[8] == 8) { omove = 8; break; } if (board[2] == "X" && board[3] == "X" && board[1] == 1) { omove = 1; break; } //missing left end (horizontal) if (board[5] == "X" && board[6] == "X" && board[4] == 4) { omove = 4; break; } if (board[8] == "X" && board[9] == "X" && board[7] == 7) { omove = 7; break; } if (board[1] == "X" && board[4] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom one (vertical) if (board[2] == "X" && board[5] == "X" && board[8] == 8) { omove = 8; break; } if (board[3] == "X" && board[6] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[7] == "X" && board[4] == 4) { omove = 4; break; } //missing middle one (vertical) if (board[2] == "X" && board[8] == "X" && board[5] == 5) { omove = 5; break; } if (board[3] == "X" && board[9] == "X" && board[6] == 6) { omove = 6; break; } if (board[4] == "X" && board[7] == "X" && board[1] == 1) { omove = 1; break; } //missing top one (vertical) if (board[5] == "X" && board[8] == "X" && board[2] == 2) { omove = 2; break; } if (board[6] == "X" && board[9] == "X" && board[3] == 3) { omove = 3; break; } if (board[1] == "X" && board[5] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal)\ if (board[1] == "X" && board[9] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal)\ if (board[5] == "X" && board[9] == "X" && board[1] == 1) { omove = 1; break; } //missing top (diagnal) \ if (board[3] == "X" && board[5] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal) / if (board[3] == "X" && board[7] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal) / if (board[5] == "X" && board[7] == "X" && board[3] == 3) { omove = 3; break; } //missing top (diagnal) / else { omove = omovenum(1, 9); } if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } document.getElementById("cell" + omove).style.color = " #19FF19"; document.getElementById("cell" + omove).innerHTML = turn; board[omove] = turn; changeTurn(); checkO(); checkO(); draw1(); if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; } } } function game4() { if (start == true) { removeevent(); start = false; reset(); drawboard(board); } start = true; document.getElementById("level").innerHTML = "

LEVEL: EXPERT

"; turn = "X"; var turnnum = 1; endgame = false; reset(); if (endgame == false) { document.getElementById("cell1").onclick = cellfunc[1]; document.getElementById("cell2").onclick = cellfunc[2]; document.getElementById("cell3").onclick = cellfunc[3]; document.getElementById("cell4").onclick = cellfunc[4]; document.getElementById("cell5").onclick = cellfunc[5]; document.getElementById("cell6").onclick = cellfunc[6]; document.getElementById("cell7").onclick = cellfunc[7]; document.getElementById("cell8").onclick = cellfunc[8]; document.getElementById("cell9").onclick = cellfunc[9]; document .getElementById("cell1") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell2") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell3") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell4") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell5") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell6") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell7") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell8") .addEventListener("click", function error() { ogame4(); }); document .getElementById("cell9") .addEventListener("click", function error() { ogame4(); }); } function ogame4() { if (endgame == true) document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; else if (endgame == false && turn == "O") { error = 1; while (error == 1) { error = 0; if (board[1] == "O" && board[2] == "O" && board[3] == 3) { omove = 3; break; } //missing right end (horizontal) if (board[4] == "O" && board[5] == "O" && board[6] == 6) { omove = 6; break; } if (board[7] == "O" && board[8] == "O" && board[9] == 9) { omove = 9; break; } if (board[1] == "O" && board[3] == "O" && board[2] == 2) { omove = 2; break; } //missing middle (horizontal) if (board[4] == "O" && board[6] == "O" && board[5] == 5) { omove = 5; break; } if (board[7] == "O" && board[9] == "O" && board[8] == 8) { omove = 8; break; } if (board[2] == "O" && board[3] == "O" && board[1] == 1) { omove = 1; break; } //missing left end (horizontal) if (board[5] == "O" && board[6] == "O" && board[4] == 4) { omove = 4; break; } if (board[8] == "O" && board[9] == "O" && board[7] == 7) { omove = 7; break; } if (board[1] == "O" && board[4] == "O" && board[7] == 7) { omove = 7; break; } //missing bottom one (vertical) if (board[2] == "O" && board[5] == "O" && board[8] == 8) { omove = 8; break; } if (board[3] == "O" && board[6] == "O" && board[9] == 9) { omove = 9; break; } if (board[1] == "O" && board[7] == "O" && board[4] == 4) { omove = 4; break; } //missing middle one (vertical) if (board[2] == "O" && board[8] == "O" && board[5] == 5) { omove = 5; break; } if (board[3] == "O" && board[9] == "O" && board[6] == 6) { omove = 6; break; } if (board[4] == "O" && board[7] == "O" && board[1] == 1) { omove = 1; break; } //missing top one (vertical) if (board[5] == "O" && board[8] == "O" && board[2] == 2) { omove = 2; break; } if (board[6] == "O" && board[9] == "O" && board[3] == 3) { omove = 3; break; } if (board[1] == "O" && board[5] == "O" && board[9] == 9) { omove = 9; break; } //missing bottom (diagnal)\ if (board[1] == "O" && board[9] == "O" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal)\ if (board[5] == "O" && board[9] == "O" && board[1] == 1) { omove = 1; break; } //missing top (diagnal) \ if (board[3] == "O" && board[5] == "O" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal) / if (board[3] == "O" && board[7] == "O" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal) / if (board[5] == "O" && board[7] == "O" && board[3] == 3) { omove = 3; break; } //missing top (diagnal) / if (board[1] == "X" && board[2] == "X" && board[3] == 3) { omove = 3; break; } //missing right end (horizontal) if (board[4] == "X" && board[5] == "X" && board[6] == 6) { omove = 6; break; } if (board[7] == "X" && board[8] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[3] == "X" && board[2] == 2) { omove = 2; break; } //missing middle (horizontal) if (board[4] == "X" && board[6] == "X" && board[5] == 5) { omove = 5; break; } if (board[7] == "X" && board[9] == "X" && board[8] == 8) { omove = 8; break; } if (board[2] == "X" && board[3] == "X" && board[1] == 1) { omove = 1; break; } //missing left end (horizontal) if (board[5] == "X" && board[6] == "X" && board[4] == 4) { omove = 4; break; } if (board[8] == "X" && board[9] == "X" && board[7] == 7) { omove = 7; break; } if (board[1] == "X" && board[4] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom one (vertical) if (board[2] == "X" && board[5] == "X" && board[8] == 8) { omove = 8; break; } if (board[3] == "X" && board[6] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[7] == "X" && board[4] == 4) { omove = 4; break; } //missing middle one (vertical) if (board[2] == "X" && board[8] == "X" && board[5] == 5) { omove = 5; break; } if (board[3] == "X" && board[9] == "X" && board[6] == 6) { omove = 6; break; } if (board[4] == "X" && board[7] == "X" && board[1] == 1) { omove = 1; break; } //missing top one (vertical) if (board[5] == "X" && board[8] == "X" && board[2] == 2) { omove = 2; break; } if (board[6] == "X" && board[9] == "X" && board[3] == 3) { omove = 3; break; } if (board[1] == "X" && board[5] == "X" && board[9] == 9) { omove = 9; break; } //missing bottom (diagnal)\ if (board[1] == "X" && board[9] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal)\ if (board[5] == "X" && board[9] == "X" && board[1] == 1) { omove = 1; break; } //missing top (diagnal) \ if (board[3] == "X" && board[5] == "X" && board[7] == 7) { omove = 7; break; } //missing bottom (diagnal) / if (board[3] == "X" && board[7] == "X" && board[5] == 5) { omove = 5; break; } //missing middle (diagnal) / if (board[5] == "X" && board[7] == "X" && board[3] == 3) { omove = 3; break; } //missing top (diagnal) / //alert(turnnum) if (turnnum == 1) { //alert(turnnum+" Turn"); if ( board[1] == "X" || board[3] == "X" || board[7] == "X" || board[9] == "X" ) { omove = 5; break; } //first turn if (board[5] == "X") { omove = 1; break; } //first turn if ( board[2] == "X" || board[6] == "X" || board[8] == "X" || board[4] == "X" ) { omove = 5; break; } else { omove = omovenum(1, 9); } if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } if (turnnum == 2) { //alert(turnnum+" Turn"); if (board[5] == "X" && board[9] == "X" && board[3] == 3) { omove = 3; break; } if (board[4] == "X" && board[3] == "X" && board[7] == 7) { omove = 7; break; } if (board[4] == "X" && board[8] == "X" && board[7] == 7) { omove = 7; break; } if (board[6] == "X" && board[8] == "X" && board[9] == 9) { omove = 9; break; } if (board[1] == "X" && board[8] == "X" && board[4] == 4) { omove = 4; break; } if (board[2] == "X" && board[4] == "X" && board[1] == 1) { omove = 1; break; } if (board[2] == "X" && board[6] == "X" && board[3] == 3) { omove = 3; break; } if (board[2] == "X" && board[9] == "X" && board[6] == 6) { omove = 3; break; } if (board[1] == "X" && board[6] == "X" && board[4] == 4) { omove = 3; break; } if (board[1] == "X" && board[2] == 2) { omove = 2; break; } if (board[3] == "X" && board[4] == 4) { omove = 4; break; } if (board[7] == "X" && board[6] == 6) { omove = 6; break; } if (board[9] == "X" && board[8] == 8) { omove = 8; break; } else { omove = omovenum(1, 9); } if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } if (turnnum == 3) { //alert(turnnum+" Turn"); if (board[4] == "X" && board[6] == "X" && board[9] == 9) { omove = 9; break; } if ( board[9] == "X" && board[4] == "X" && board[2] == "X" && board[1] == 1 ) { omove = 1; break; } else { omove = omovenum(1, 9); } if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } else { omove = omovenum(1, 9); } //alert(omove+" omove"); if (omove < 1 || omove > 9) error = 1; if (isNaN(board[omove]) == true) error = 1; } //alert(omove); document.getElementById("cell" + omove).style.color = " #19FF19"; document.getElementById("cell" + omove).innerHTML = turn; board[omove] = turn; turnnum++; //alert("after turn "+turnnum) changeTurn(); checkO(); checkO(); draw1(); if (endgame == true) { document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; error = 0; } } } } function omovenum(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function reset() { for (i = 1; i < 10; i++) board[i] = i; document.getElementById("cell1").innerHTML = 1; document.getElementById("cell2").innerHTML = 2; document.getElementById("cell3").innerHTML = 3; document.getElementById("cell4").innerHTML = 4; document.getElementById("cell5").innerHTML = 5; document.getElementById("cell6").innerHTML = 6; document.getElementById("cell7").innerHTML = 7; document.getElementById("cell8").innerHTML = 8; document.getElementById("cell9").innerHTML = 9; } function draw1() { if (endgame == false) { for (i = 0, bcount = 0; i <= 9; i++) if (isNaN(board[i]) == false) bcount++; if (bcount == 0) { alert("Draw"); endgame = true; draw++; if (endgame == true) { document.getElementById("level").innerHTML = "

CHOOSE A LEVEL

"; score(); removeevent(); } } } } function checkX() { if (endgame == false) { if (board[1] == "X" && board[2] == "X" && board[3] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[4] == "X" && board[5] == "X" && board[6] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[7] == "X" && board[8] == "X" && board[9] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[1] == "X" && board[5] == "X" && board[9] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[3] == "X" && board[5] == "X" && board[7] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[1] == "X" && board[4] == "X" && board[7] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[2] == "X" && board[5] == "X" && board[8] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } if (board[3] == "X" && board[6] == "X" && board[9] == "X") { alert("X wins!"); endgame = true; xwin++; score(); removeevent(); } //if (endgame == true){ removeevent();alert("endgame "+endgame +" checkx")} } } function checkO() { if (endgame == false) { if (board[1] == "O" && board[2] == "O" && board[3] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[4] == "O" && board[5] == "O" && board[6] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[7] == "O" && board[8] == "O" && board[9] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[1] == "O" && board[5] == "O" && board[9] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[3] == "O" && board[5] == "O" && board[7] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[1] == "O" && board[4] == "O" && board[7] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[2] == "O" && board[5] == "O" && board[8] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } if (board[3] == "O" && board[6] == "O" && board[9] == "O") { alert("O wins!"); endgame = true; owin++; score(); removeevent(); } //if (endgame == true) { removeevent();alert("endgame "+endgame +" checkO")} } } function removeevent() { document .getElementById("cell1") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell2") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell3") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell4") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell5") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell6") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell7") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell8") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell9") .removeEventListener("click", function error() { ogame4(); }); document .getElementById("cell1") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell2") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell3") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell4") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell5") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell6") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell7") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell8") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell9") .removeEventListener("click", function error() { ogame3(); }); document .getElementById("cell1") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell2") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell3") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell4") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell5") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell6") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell7") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell8") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell9") .removeEventListener("click", function error() { ogame2(); }); document .getElementById("cell1") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell2") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell3") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell4") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell5") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell6") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell7") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell8") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell9") .removeEventListener("click", function error() { ogame1(); }); document .getElementById("cell1") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell2") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell3") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell4") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell5") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell6") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell7") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell8") .removeEventListener("click", function error() { ogame(); }); document .getElementById("cell9") .removeEventListener("click", function error() { ogame(); }); }