Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var board = [
- ['', '', ''],
- ['', '', ''],
- ['', '', '']
- ]
- var emptyBoard = [
- ['', '', ''],
- ['', '', ''],
- ['', '', '']
- ]
- var isX = true
- var gameOver = false
- //play() ce biti mejn funkcija:
- function play(i, j) {
- if (board[i][j] != '') {
- console.log('Ovo polje je vec zauzeto.')
- }
- else {
- if (isX) {
- board[i][j] = 'x'
- }
- else {
- board[i][j] = 'o'
- }
- gameOver = checkWinner(board)
- isX = switchTurn(isX)
- if(checkDraw(board)) {
- if(gameOver) {
- displayWinner(!isX)//ovde ide samo !isX jer
- //sam gore imao switchTurn(isX)
- }
- else {
- console.log('Neresno. Mozete otpoceti novu igru.')
- }
- resetGame()
- }
- else if(gameOver) {
- displayWinner(!isX)
- resetGame()
- }
- console.log(board)
- }
- }
- function displayWinner(isX) {
- isX ? console.log('Pobednik je takmicar X.') : console.log('Pobednik je takmicar O.')
- }
- function switchTurn(isX) {
- reversedX = !isX
- return reversedX
- }
- function checkWinner(board) {
- const results = [
- checkRow(board, 0),
- checkRow(board, 1),
- checkRow(board, 2),
- checkColumn(board, 0),
- checkColumn(board, 1),
- checkColumn(board, 2),
- checkMainDiagonal(board),
- checkOtherDiagonal(board)
- ]
- return results.some(result => result == true)
- }
- function checkRow(board, i) {
- gameOver = true
- return board[i][0] != '' && board[i][0] == board[i][1] && board[i][1] == board[i][2]
- }
- function checkColumn(board, i) {
- return board[0][i] != '' && board[0][i] == board[1][i] && board[1][i] == board[2][i]
- }
- function checkMainDiagonal(board) {
- gameOver = true
- return board[0][0] != '' && board[0][0] == board[1][1] && board[1][1] == board[2][2]
- }
- function checkOtherDiagonal(board) {
- gameOver = true
- return board[0][2] != '' && board[0][2] == board[1][1] && board[1][1] == board[2][0]
- }
- //ova nije cista
- function resetGame() {
- this.board = emptyBoard
- this.gameOver = false
- this.isX = true
- }
- function checkDraw(board) {
- var freeCells = numOfFreeCells(board)
- return freeCells == 0
- }
- function numOfFreeCells(board) {
- var numOfFreeCells = 0
- board.forEach((row, i) => {
- row.forEach((cell, j) => {
- if (cell == '') {
- numOfFreeCells++
- }
- })
- })
- return numOfFreeCells
- }
- // 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
- // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement