Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var board = [
- ['', '', ''],
- ['', '', ''],
- ['', '', '']
- ]
- var emptyBoard = [
- ['', '', ''],
- ['', '', ''],
- ['', '', '']
- ]
- var isX = true
- var gameOn = true
- var boxesLeftToClick = Math.pow(board[0].length, 2)
- function play(i, j) {
- //Znam da ne bi trebalo isX/board da gadjam globalno
- //ali mislim da je neprakticno da svaki put
- //unosim naizmenicno true/false da se zna
- //ko igra.
- if (board[i][j] != '')
- console.log('Ovo polje je vec zauzeto.')
- else {
- if (isX) {
- board[i][j] = 'x'
- }
- else {
- board[i][j] = 'o'
- }
- boxesLeftToClick--
- checkWinner(board, isX, gameOn)
- isX = !isX
- if(boxesLeftToClick == 0 && gameOn == true) {
- resetGame()
- }
- console.log(board)
- }
- }
- function checkWinner(board, isX, gameOn) {
- if (checkRow(board, 0)) {
- console.log('First row. Winner: ', isX ? 'x.' : 'o.')
- }
- else if (checkRow(board, 1)) {
- console.log('Second row. Winner: ', isX ? 'x.' : 'o.') }
- else if (checkRow(board, 2)) {
- console.log('Third row. Winner: ', isX ? 'x.' : 'o.') }
- else if (checkRow(transposeMatrix(board), 0)) {
- console.log('First column. Winner: ', isX ? 'x.' : 'o.') }
- else if (checkRow(transposeMatrix(board), 1)) {
- console.log('Second column. Winner: ', isX ? 'x.' : 'o.') }
- else if (checkRow(transposeMatrix(board), 2)) {
- console.log('Third column. Winner: ', isX ? 'x.' : 'o.') }
- else if (checkMainDiagonal(board)) {
- console.log('Main diagonal. Winner: ', isX ? 'x.' : 'o.' ) }
- else if (checkOtherDiagonal(board)) {
- console.log('The other diagonal. Winner: ', isX ? 'x.' : 'o.' ) }
- }
- function checkRow(board, i) {
- var gameOver = board[i][0] != '' && board[i][0] == board[i][1] && board[i][1] == board[i][2]
- if(gameOver) {
- resetGame()
- }
- return gameOver
- }
- function checkMainDiagonal(board) {
- var gameOver = board[0][0] != '' && board[0][0] == board[1][1] && board[1][1] == board[2][2]
- if(gameOver) {
- resetGame()
- }
- return gameOver
- }
- function checkOtherDiagonal(board) {
- var gameOver = board[0][2] != '' && board[0][2] == board[1][1] && board[1][1] == board[2][0]
- if(gameOver) {
- resetGame()
- }
- return gameOver
- }
- function transposeMatrix(matrix) {
- var result = new Array(matrix[0].length)
- for(var i = 0; i < result.length; i++) {
- result[i] = new Array(matrix[0].length)
- for(var j = 0; j < result[i].length; j++) {
- result[i][j] = matrix[j][i]
- }
- }
- return result
- }
- function resetGame() {
- console.log('Mozete otpoceti novu igru.')
- if(boxesLeftToClick == 0) {
- console.log('Neresno.')
- }
- this.board = emptyBoard
- this.gameOn = false
- this.isX = true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement