Skip to content

Instantly share code, notes, and snippets.

@topherPedersen
Created February 7, 2019 00:39
Show Gist options
  • Select an option

  • Save topherPedersen/9de65bc7f4249b5258ebbc8df74fefe2 to your computer and use it in GitHub Desktop.

Select an option

Save topherPedersen/9de65bc7f4249b5258ebbc8df74fefe2 to your computer and use it in GitHub Desktop.
Coles Completely Original Tic Tac Toe with No Contributions from His Instructor who is Terrible at Coding
<!--TICTACTOE w/ decent AI-->
<!--Made by Cole N and Chris-->
<!DOCTYPE html>
<html>
<head>
<title> Live coding session </title>
</head>
<body>
<h1>TicTacToeJS</h1>
<button id="button-1" onclick="selectPlaceOnBoard('button-1', 1);">:)</button>
<button id="button-2" onclick="selectPlaceOnBoard('button-2', 2);">:)</button>
<button id="button-3" onclick="selectPlaceOnBoard('button-3', 3);">:)</button> <br>
<button id="button-4" onclick="selectPlaceOnBoard('button-4', 4);">:)</button>
<button id="button-5" onclick="selectPlaceOnBoard('button-5', 5);">:)</button>
<button id="button-6" onclick="selectPlaceOnBoard('button-6', 6);">:)</button> <br>
<button id="button-7" onclick="selectPlaceOnBoard('button-7', 7);">:)</button>
<button id="button-8" onclick="selectPlaceOnBoard('button-8', 8);">:)</button>
<button id="button-9" onclick="selectPlaceOnBoard('button-9', 9);">:)</button> <br>
<script>
function changeBackground() {
document.body.style.backgroundColor = "#800080";
}
changeBackground();
function changeBackgroundWin() {
document.body.style.backgroundColor = "#008000";
}
function changeBackgroundLose() {
document.body.style.backgroundColor = "#FF0000";
}
var place = new Array();
// NOTE: place[0] is not used!
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
place.push('Z');
var numberOfSelectionsMade = 0;
var winnerFound = checkForWinner();
function selectPlaceOnBoard(param1, param2) {
if (winnerFound == true) {
return;
}
// If the spot selected is open, place the player's mark
if (place[param2] == 'Z') {
place[param2] = 'X';
document.getElementById(param1).innerHTML = 'X';
numberOfSelectionsMade += 1; // increment numberOfSelectionsMade Variable HERE
winnerFound = checkForWinner();
// Place Computer's Mark
if (winnerFound == false) {
var computerSelectionMade = false;
while (computerSelectionMade == false && numberOfSelectionsMade < 9) {
if (place[1] == "Z" && place[2] == "O" && place[3] == "O") {
computerMove = 1;
} else if (place[1] == "O" && place[2] == "Z" && place[3] == "O") {
computerMove = 2;
} else if (place[1] == "O" && place[2] == "O" && place[3] == "Z") {
computerMove = 3;
} else if (place[4] == "Z" && place[5] == "O" && place[6] == "O") {
computerMove = 4;
} else if (place[4] == "O" && place[5] == "Z" && place[6] == "O") {
computerMove = 5;
} else if (place[4] == "O" && place[5] == "O" && place[6] == "Z") {
computerMove = 6;
} else if (place[7] == "Z" && place[8] == "O" && place[9] == "O") {
computerMove = 7;
} else if (place[7] == "O" && place[8] == "Z" && place[9] == "O") {
computerMove = 8;
} else if (place[7] == "O" && place[8] == "O" && place[9] == "Z") {
computerMove = 9;
} else if (place[1] == "Z" && place[4] == "O" && place[7] == "O") {
computerMove = 1;
} else if (place[1] == "O" && place[4] == "Z" && place[7] == "O") {
computerMove = 4;
} else if (place[1] == "O" && place[4] == "O" && place[7] == "Z") {
computerMove = 7;
} else if (place[2] == "Z" && place[5] == "O" && place[8] == "O") {
computerMove = 2;
} else if (place[2] == "O" && place[5] == "Z" && place[8] == "O") {
computerMove = 5;
} else if (place[2] == "O" && place[5] == "O" && place[8] == "Z") {
computerMove = 8;
} else if (place[3] == "Z" && place[6] == "O" && place[9] == "O") {
computerMove = 3;
} else if (place[3] == "O" && place[6] == "Z" && place[9] == "O") {
computerMove = 6;
} else if (place[3] == "O" && place[6] == "O" && place[9] == "Z") {
computerMove = 9;
} else if (place[1] == "Z" && place[5] == "O" && place[9] == "O") {
computerMove = 1;
} else if (place[1] == "O" && place[5] == "Z" && place[9] == "O") {
computerMove = 5;
} else if (place[1] == "O" && place[5] == "O" && place[9] == "Z") {
computerMove = 9;
} else if (place[3] == "Z" && place[5] == "O" && place[7] == "O") {
computerMove = 3;
} else if (place[3] == "O" && place[5] == "Z" && place[7] == "O") {
computerMove = 5;
} else if (place[3] == "O" && place[5] == "O" && place[7] == "Z") {
computerMove = 7;
} else {
// NOTE: BUG IS IN HERE SOMEWHERE!
if (place[1] == "Z" && place[2] == "X" && place[3] == "X") {
computerMove = 1;
} else if (place[1] == "X" && place[2] == "Z" && place[3] == "X") {
computerMove = 2;
} else if (place[1] == "X" && place[2] == "X" && place[3] == "Z") {
computerMove = 3;
} else if (place[4] == "Z" && place[5] == "X" && place[6] == "X") {
computerMove = 4;
} else if (place[4] == "X" && place[5] == "Z" && place[6] == "X") {
computerMove = 5;
} else if (place[4] == "X" && place[5] == "X" && place[6] == "Z") {
computerMove = 6;
} else if (place[7] == "Z" && place[8] == "X" && place[9] == "X") {
computerMove = 7;
} else if (place[7] == "X" && place[8] == "Z" && place[9] == "X") {
computerMove = 8;
} else if (place[7] == "X" && place[8] == "X" && place[9] == "Z") {
computerMove = 9;
} else if (place[1] == "Z" && place[4] == "X" && place[7] == "X") {
computerMove = 1;
} else if (place[1] == "X" && place[4] == "Z" && place[7] == "X") {
computerMove = 4;
} else if (place[1] == "X" && place[4] == "X" && place[7] == "Z") {
computerMove = 7;
} else if (place[2] == "Z" && place[5] == "X" && place[8] == "X") {
computerMove = 2;
} else if (place[2] == "X" && place[5] == "Z" && place[8] == "X") {
computerMove = 5;
} else if (place[2] == "X" && place[5] == "X" && place[8] == "Z") {
computerMove = 8;
} else if (place[3] == "Z" && place[6] == "X" && place[9] == "X") {
computerMove = 3;
} else if (place[3] == "X" && place[6] == "Z" && place[9] == "X") {
computerMove = 6;
} else if (place[3] == "X" && place[6] == "X" && place[9] == "Z") {
computerMove = 9;
} else if (place[1] == "Z" && place[5] == "X" && place[9] == "X") {
computerMove = 1;
} else if (place[1] == "X" && place[5] == "Z" && place[9] == "X") {
computerMove = 5;
} else if (place[1] == "X" && place[5] == "X" && place[9] == "Z") {
computerMove = 9;
} else if (place[3] == "Z" && place[5] == "X" && place[7] == "X") {
computerMove = 3;
} else if (place[3] == "X" && place[5] == "Z" && place[7] == "X") {
computerMove = 5;
} else if (place[3] == "X" && place[5] == "X" && place[7] == "Z") {
computerMove = 7;
} else {
var computerMove = Math.floor((Math.random() * 10) + 1);
if (computerMove == 10) {
computerMove = 5;
}
}
}
if (place[computerMove] == 'Z') {
place[computerMove] = 'O';
document.getElementById("button-" + computerMove).innerHTML = 'O';
computerSelectionMade = true;
numberOfSelectionsMade += 1;
winnerFound = checkForWinner();
}
}
}
}
}
function checkForWinner() {
if (place[1] == "X" && place[2] == "X" && place[3] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[4] == "X" && place[5] == "X" && place[6] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[7] == "X" && place[8] == "X" && place[9] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[1] == "X" && place[4] == "X" && place[7] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[2] == "X" && place[5] == "X" && place[8] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[3] == "X" && place[6] == "X" && place[9] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[1] == "X" && place[5] == "X" && place[9] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[3] == "X" && place[5] == "X" && place[7] == "X") {
alert("You win!");
changeBackgroundWin();
return true;
} else if (place[1] == "O" && place[2] == "O" && place[3] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[4] == "O" && place[5] == "O" && place[6] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[7] == "O" && place[8] == "O" && place[9] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[1] == "O" && place[4] == "O" && place[7] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[2] == "O" && place[5] == "O" && place[8] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[3] == "O" && place[6] == "O" && place[9] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[1] == "O" && place[5] == "O" && place[9] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else if (place[3] == "O" && place[5] == "O" && place[7] == "O") {
alert("You lose!");
changeBackgroundLose();
return true;
} else {
return false;
}
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment