Skip to content

Instantly share code, notes, and snippets.

@devpruthvi
Created August 26, 2015 16:51
Show Gist options
  • Select an option

  • Save devpruthvi/2b96b8d36623f945fe0f to your computer and use it in GitHub Desktop.

Select an option

Save devpruthvi/2b96b8d36623f945fe0f to your computer and use it in GitHub Desktop.
$(function () {
function Player(name,marker,score) {
this.name = name;
this.marker = marker;
this.score = score;
};
var p1 = new Player("Player 1","x","000000000");
var p2 = new Player("Player 2","o","000000000");
var SIZE = 3,moves = 0;
var turn = p1;
var startNewGame = function()
{
moves = 0;
p1 = new Player("Player 1","x","000000000");
p2 = new Player("Player 2","o","000000000");
turn = p1;
$(document.getElementById("board")).html('');
makeBoard();
};
var markBox = function() {
if($(this).html() !== '') {
return;
}
moves += 1;
$(this).html(turn.marker);
var changeAt = $(this)[0].indicator;
turn.score = turn.score.substr(0, changeAt) + '1' + turn.score.substr(changeAt + 1);
if(/111......|...111...|......111|1..1..1..|.1..1..1.|..1..1..1|1...1...1|..1.1.1../.test(turn.score)) {
alert(turn.name + " WON!");
startNewGame();
}
else if(moves === 9)
{
alert("NOBODY WON!");
startNewGame();
}
else {
if(turn.marker === "x")
turn = p2;
else
turn = p1;
}
};
var makeBoard = function() {
var board = $("<table border=1 cellspacing=0>"), ind = 0;
for(var i=0;i<SIZE;i++) {
var row = $("<tr>");
board.append(row);
for(var j=0;j<SIZE;j++) {
var cell = $("<td height=100 width=100 align=center valign=center></td>");
cell[0].indicator = ind;
cell.click(markBox);
row.append(cell);
ind += 1;
}
}
$(document.getElementById("board")).append(board);
};
makeBoard();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment