From a275990f624594eb848db5b7f87e39ab3156b65d Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Sat, 29 Jan 2011 21:12:08 +0100 Subject: [PATCH] first commit --- games/tic-tac-toe-js/css/screen.css | 27 +++++++++++++ games/tic-tac-toe-js/index.html | 12 ++++++ games/tic-tac-toe-js/js/game.js | 38 +++++++++++++++++ games/tic-tac-toe-js/js/server.js | 63 +++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 games/tic-tac-toe-js/css/screen.css create mode 100644 games/tic-tac-toe-js/index.html create mode 100644 games/tic-tac-toe-js/js/game.js create mode 100644 games/tic-tac-toe-js/js/server.js diff --git a/games/tic-tac-toe-js/css/screen.css b/games/tic-tac-toe-js/css/screen.css new file mode 100644 index 0000000..d31c57d --- /dev/null +++ b/games/tic-tac-toe-js/css/screen.css @@ -0,0 +1,27 @@ +body { + text-align: center; +} + +table { + border-collapse: collapse; + margin: auto; +} + +td { + width: 50px; + height: 50px; + font-size: 20px; + vertical-align: middle; + text-align: center; + cursor: pointer; + border-left: 1px solid gray; + border-top: 1px solid gray; +} + +tr:first-child td { + border-top: none; +} + +td:first-child { + border-left: none; +} diff --git a/games/tic-tac-toe-js/index.html b/games/tic-tac-toe-js/index.html new file mode 100644 index 0000000..bb008f9 --- /dev/null +++ b/games/tic-tac-toe-js/index.html @@ -0,0 +1,12 @@ + + + + Tic Tac Toe + + + + +
+

New game

+ + \ No newline at end of file diff --git a/games/tic-tac-toe-js/js/game.js b/games/tic-tac-toe-js/js/game.js new file mode 100644 index 0000000..fdb9c4c --- /dev/null +++ b/games/tic-tac-toe-js/js/game.js @@ -0,0 +1,38 @@ +// This first version doesn't take networking into account yet. + +function TicTacToe(container_id) { + this.player_turn = 1; + this.rows = 3; + + this.container = document.getElementById(container_id); + var table = document.createElement("table"); + var tr = document.createElement("tr"); + var td = document.createElement("td"); + + for(var i=0; i < this.rows; i++) { + var atr = tr.cloneNode(); + + for(var j=0; j < this.rows; j++) { + + + var atd = td.cloneNode(); + var self = this; + atd.onclick = function(e) { + if (e.target.innerHTML == "") { + if (self.player_turn == 1) { + e.target.innerHTML = "X"; + self.player_turn = 2; + } else { + e.target.innerHTML = "O"; + self.player_turn = 1; + } + } + } + atr.appendChild(atd); + } + table.appendChild(atr); + } + + this.container.innerHTML = ""; + this.container.appendChild(table) +} diff --git a/games/tic-tac-toe-js/js/server.js b/games/tic-tac-toe-js/js/server.js new file mode 100644 index 0000000..e51de29 --- /dev/null +++ b/games/tic-tac-toe-js/js/server.js @@ -0,0 +1,63 @@ +function TicTacToeServer(rows) {} + +TicTacToeServer.prototype.init = function() { + +} + +TicTacToeServer.newGame = function() { + this.rows = 3; + + // Initiate game with empty rows and columns + this.gameBoard = []; + for (var i=0; i < this.rows; i++) { + this.gameBoard[i] = []; + for (var j=0; i < this.rows; i++) { + this.gameBoard[i][j] = ''; + } + } +} + +TicTacToeServer.prototype.checkIfWon = function(player) { + + for (i = 0; i < this.rows; ++i) { + for (j = 0; j < this.rows; ++j) { + if (this.gameBoard[i][j] != 'X') { + break; + } + } + if (j == this.rows) { + return true; + } + + for (j = 0; j < this.rows; ++j) { + if (this.gameBoard[j][i] != 'X') { + break; + } + } + if (j == this.rows) { + return true; + } + } + + // Now check diagnols + for (i = 0; i < this.rows; ++i) { + if (this.gameBoard[i][i] != 'X') { + break; + } + } + + if (i == this.rows) { + return true; + } + + for (i = 0; i < this.rows; ++i) { + if (this.gameBoard[i][this.rows - i - 1] != 'X') { + break; + } + } + if (i == this.rows) { + return true; + } + + return false; +} \ No newline at end of file