Skip to content

Instantly share code, notes, and snippets.

Created December 5, 2015 00:49
Show Gist options
  • Save anonymous/72f09afdb9a40da14d6f to your computer and use it in GitHub Desktop.
Save anonymous/72f09afdb9a40da14d6f to your computer and use it in GitHub Desktop.
Noughts and Crosses // source http://jsbin.com/xaniro/49
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Noughts and Crosses</title>
<style id="jsbin-css">
#left-top {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
width: 10%;
}
#center-top {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
width: 10%;
}
#right-top {
border-bottom: 1px dotted black;
width: 10%;
}
#left-middle {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
}
#center-middle {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
}
#right-middle {
border-bottom: 1px dotted black;
}
#left-bottom {
border-right: 1px dotted black;
}
#center-bottom {
border-right: 1px dotted black;
height: 50px;
}
#right-bottom {
width: 20px;
}
</style>
</head>
<body>
<table style="padding-left: 20%">
<tr>
<td id="left-top" onclick="myMarker(this.id)">
<center> -</center>
</td>
<td id="center-top" onclick="myMarker(this.id)">
<center> - </center>
</td>
<td id="right-top" onclick="myMarker(this.id)">
<center> - </center>
</td>
</tr>
<tr>
<td id="left-middle" onclick="myMarker(this.id)">
<center> - </center>
</td>
<td id="center-middle" onclick="myMarker(this.id)">
<center> - </center>
</td>
<td id="right-middle" onclick="myMarker(this.id)">
<center> - </center>
</td>
</tr>
<tr>
<td id="left-bottom" onclick="myMarker(this.id)">
<center> - </center>
</td>
<td id="center-bottom" onclick="myMarker(this.id)">
<center> - </center>
</td>
<td id="right-bottom" onclick="myMarker(this.id)">
<center> - </center>
</td>
</tr>
</table>
<script id="jsbin-javascript">
var secondPlayer=true;
var marksArray = [[],[],[]];
function winnerCheck (mark){
console.log(marksArray[0].length);
if(mark==='X'){
alert('Player 1 is the Winner!');
location.reload();
}
else if(mark==='O'){
alert('Player 2 is the Winner!');
location.reload();
}
}
function winChecker(){
console.log('winChecker called');
console.log('marksArray=>', marksArray);
//horizontal checks
var condition1 = marksArray[0][0]===marksArray[0][1] && marksArray[0][1]===marksArray[0][2];
var condition2 = marksArray[1][0]===marksArray[1][1] && marksArray[1][1]===marksArray[1][2];
var condition3 = marksArray[2][0]===marksArray[2][1] && marksArray[2][1]===marksArray[2][2];
//vertical checks
var condition4 = marksArray[0][0]===marksArray[1][0] && marksArray[1][0]===marksArray[2][0];
var condition5 = marksArray[0][1]===marksArray[1][1] && marksArray[1][1]===marksArray[2][1];
var condition6 = marksArray[0][2]===marksArray[1][2] && marksArray[1][2]===marksArray[2][2];
//diagonal checks
var condition7 = marksArray[0][0]===marksArray[1][1] && marksArray[1][1]===marksArray[2][2];
var condition8 = marksArray[0][2]===marksArray[1][1] && marksArray[1][1]===marksArray[2][0];
if(condition1){winnerCheck(marksArray[0][2]);}
if(condition2){winnerCheck(marksArray[1][2]);}
if(condition3){winnerCheck(marksArray[2][2]);}
if(condition4){winnerCheck(marksArray[2][0]);}
if(condition5){winnerCheck(marksArray[2][1]);}
if(condition6){winnerCheck(marksArray[2][2]);}
if(condition7){winnerCheck(marksArray[2][2]);}
if(condition8){winnerCheck(marksArray[2][0]);}
if(marksArray[0].length===3 && marksArray[1].length===3 && marksArray[2].length===3){
alert('Match is a draw!');
location.reload();
}
}
function referee(thisId, mark){
switch(thisId){
case "left-top": marksArray[0][0]=mark;
winChecker();
break;
case "center-top": marksArray[0][1]=mark;
winChecker();
break;
case "right-top": marksArray[0][2]=mark;
winChecker();
break;
case "left-middle": marksArray[1][0]=mark;
winChecker();
break;
case "center-middle": marksArray[1][1]=mark;
winChecker();
break;
case "right-middle": marksArray[1][2]=mark;
winChecker();
break;
case "left-bottom": marksArray[2][0]=mark;
winChecker();
break;
case "center-bottom": marksArray[2][1]=mark;
winChecker();
break;
case "right-bottom": marksArray[2][2]=mark;
winChecker();
break;
}
}
function myMarker(thisId) {
var innerContent;
if(secondPlayer){
innerContent="X";
} else {
innerContent="O";
}
document.getElementById(thisId).innerHTML = "<center>"+innerContent+"</center>";
secondPlayer=!secondPlayer;
referee(thisId, innerContent);
}
</script>
<script id="jsbin-source-css" type="text/css">#left-top {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
width: 10%;
}
#center-top {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
width: 10%;
}
#right-top {
border-bottom: 1px dotted black;
width: 10%;
}
#left-middle {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
}
#center-middle {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
}
#right-middle {
border-bottom: 1px dotted black;
}
#left-bottom {
border-right: 1px dotted black;
}
#center-bottom {
border-right: 1px dotted black;
height: 50px;
}
#right-bottom {
width: 20px;
}</script>
<script id="jsbin-source-javascript" type="text/javascript">var secondPlayer=true;
var marksArray = [[],[],[]];
function winnerCheck (mark){
console.log(marksArray[0].length);
if(mark==='X'){
alert('Player 1 is the Winner!');
location.reload();
}
else if(mark==='O'){
alert('Player 2 is the Winner!');
location.reload();
}
}
function winChecker(){
console.log('winChecker called');
console.log('marksArray=>', marksArray);
//horizontal checks
var condition1 = marksArray[0][0]===marksArray[0][1] && marksArray[0][1]===marksArray[0][2];
var condition2 = marksArray[1][0]===marksArray[1][1] && marksArray[1][1]===marksArray[1][2];
var condition3 = marksArray[2][0]===marksArray[2][1] && marksArray[2][1]===marksArray[2][2];
//vertical checks
var condition4 = marksArray[0][0]===marksArray[1][0] && marksArray[1][0]===marksArray[2][0];
var condition5 = marksArray[0][1]===marksArray[1][1] && marksArray[1][1]===marksArray[2][1];
var condition6 = marksArray[0][2]===marksArray[1][2] && marksArray[1][2]===marksArray[2][2];
//diagonal checks
var condition7 = marksArray[0][0]===marksArray[1][1] && marksArray[1][1]===marksArray[2][2];
var condition8 = marksArray[0][2]===marksArray[1][1] && marksArray[1][1]===marksArray[2][0];
if(condition1){winnerCheck(marksArray[0][2]);}
if(condition2){winnerCheck(marksArray[1][2]);}
if(condition3){winnerCheck(marksArray[2][2]);}
if(condition4){winnerCheck(marksArray[2][0]);}
if(condition5){winnerCheck(marksArray[2][1]);}
if(condition6){winnerCheck(marksArray[2][2]);}
if(condition7){winnerCheck(marksArray[2][2]);}
if(condition8){winnerCheck(marksArray[2][0]);}
if(marksArray[0].length===3 && marksArray[1].length===3 && marksArray[2].length===3){
alert('Match is a draw!');
location.reload();
}
}
function referee(thisId, mark){
switch(thisId){
case "left-top": marksArray[0][0]=mark;
winChecker();
break;
case "center-top": marksArray[0][1]=mark;
winChecker();
break;
case "right-top": marksArray[0][2]=mark;
winChecker();
break;
case "left-middle": marksArray[1][0]=mark;
winChecker();
break;
case "center-middle": marksArray[1][1]=mark;
winChecker();
break;
case "right-middle": marksArray[1][2]=mark;
winChecker();
break;
case "left-bottom": marksArray[2][0]=mark;
winChecker();
break;
case "center-bottom": marksArray[2][1]=mark;
winChecker();
break;
case "right-bottom": marksArray[2][2]=mark;
winChecker();
break;
}
}
function myMarker(thisId) {
var innerContent;
if(secondPlayer){
innerContent="X";
} else {
innerContent="O";
}
document.getElementById(thisId).innerHTML = "<center>"+innerContent+"</center>";
secondPlayer=!secondPlayer;
referee(thisId, innerContent);
}
</script></body>
</html>
#left-top {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
width: 10%;
}
#center-top {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
width: 10%;
}
#right-top {
border-bottom: 1px dotted black;
width: 10%;
}
#left-middle {
border-right: 1px dotted black;
border-bottom: 1px dotted black;
}
#center-middle {
border-bottom: 1px dotted black;
border-right: 1px dotted black;
height: 50px;
}
#right-middle {
border-bottom: 1px dotted black;
}
#left-bottom {
border-right: 1px dotted black;
}
#center-bottom {
border-right: 1px dotted black;
height: 50px;
}
#right-bottom {
width: 20px;
}
var secondPlayer=true;
var marksArray = [[],[],[]];
function winnerCheck (mark){
console.log(marksArray[0].length);
if(mark==='X'){
alert('Player 1 is the Winner!');
location.reload();
}
else if(mark==='O'){
alert('Player 2 is the Winner!');
location.reload();
}
}
function winChecker(){
console.log('winChecker called');
console.log('marksArray=>', marksArray);
//horizontal checks
var condition1 = marksArray[0][0]===marksArray[0][1] && marksArray[0][1]===marksArray[0][2];
var condition2 = marksArray[1][0]===marksArray[1][1] && marksArray[1][1]===marksArray[1][2];
var condition3 = marksArray[2][0]===marksArray[2][1] && marksArray[2][1]===marksArray[2][2];
//vertical checks
var condition4 = marksArray[0][0]===marksArray[1][0] && marksArray[1][0]===marksArray[2][0];
var condition5 = marksArray[0][1]===marksArray[1][1] && marksArray[1][1]===marksArray[2][1];
var condition6 = marksArray[0][2]===marksArray[1][2] && marksArray[1][2]===marksArray[2][2];
//diagonal checks
var condition7 = marksArray[0][0]===marksArray[1][1] && marksArray[1][1]===marksArray[2][2];
var condition8 = marksArray[0][2]===marksArray[1][1] && marksArray[1][1]===marksArray[2][0];
if(condition1){winnerCheck(marksArray[0][2]);}
if(condition2){winnerCheck(marksArray[1][2]);}
if(condition3){winnerCheck(marksArray[2][2]);}
if(condition4){winnerCheck(marksArray[2][0]);}
if(condition5){winnerCheck(marksArray[2][1]);}
if(condition6){winnerCheck(marksArray[2][2]);}
if(condition7){winnerCheck(marksArray[2][2]);}
if(condition8){winnerCheck(marksArray[2][0]);}
if(marksArray[0].length===3 && marksArray[1].length===3 && marksArray[2].length===3){
alert('Match is a draw!');
location.reload();
}
}
function referee(thisId, mark){
switch(thisId){
case "left-top": marksArray[0][0]=mark;
winChecker();
break;
case "center-top": marksArray[0][1]=mark;
winChecker();
break;
case "right-top": marksArray[0][2]=mark;
winChecker();
break;
case "left-middle": marksArray[1][0]=mark;
winChecker();
break;
case "center-middle": marksArray[1][1]=mark;
winChecker();
break;
case "right-middle": marksArray[1][2]=mark;
winChecker();
break;
case "left-bottom": marksArray[2][0]=mark;
winChecker();
break;
case "center-bottom": marksArray[2][1]=mark;
winChecker();
break;
case "right-bottom": marksArray[2][2]=mark;
winChecker();
break;
}
}
function myMarker(thisId) {
var innerContent;
if(secondPlayer){
innerContent="X";
} else {
innerContent="O";
}
document.getElementById(thisId).innerHTML = "<center>"+innerContent+"</center>";
secondPlayer=!secondPlayer;
referee(thisId, innerContent);
}
@vikram-s-narayan
Copy link

My basic 2 player working version of tic-tac-toe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment