Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

status checker.js - complete #7

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 60 additions & 23 deletions status-checker.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { checkIfNoMovesLeft } from './board-printer.js';
import { checkIfNoMovesLeft } from "./board-printer.js";

/*
Example board:
Expand All @@ -9,6 +9,15 @@ import { checkIfNoMovesLeft } from './board-printer.js';
];
*/

let board = [
["X", "_", "_"],
["_", "X", "_"],
["O", "O", "X"],
];

let player = "X";
let row = 0;

/*
Given 3 parameters:
- a tic-tac-toe board (array of arrays)
Expand All @@ -18,6 +27,13 @@ import { checkIfNoMovesLeft } from './board-printer.js';
Otherwise, return false
*/
function checkRow(board, player, rowNumber) {
if (
board[rowNumber][0] === player &&
board[rowNumber][1] === player &&
board[rowNumber][2]
) {
return true;
} else return false;
}

/*
Expand All @@ -29,6 +45,13 @@ function checkRow(board, player, rowNumber) {
Otherwise, return false
*/
function checkColumn(board, player, columnNumber) {
if (
board[columnNumber][0] === player &&
board[columnNumber][1] === player &&
board[columnNumber][2]
) {
return true;
} else return false;
}

/*
Expand All @@ -39,43 +62,57 @@ function checkColumn(board, player, columnNumber) {
Otherwise, return false
*/
function checkDiagonal(board, player) {
// It may be easier to use an if statement than a loop here
// It may be easier to use an if statement than a loop here
if (
board[0][0] === player &&
board[1][1] === player &&
board[2][2] === player
)
return true;
else if (
board[0][2] === player &&
board[1][1] === player &&
board[2][0] === player
)
return true;
else return false;
}

console.log(checkDiagonal(board, player));

/*
There is no need to change any code below this line.
*/

function checkIfPlayerWon(board, player) {
for(let i = 0; i <= 2; i++) {
if(checkRow(board, player, i) || checkColumn(board, player, i)) {
return true;
}
for (let i = 0; i <= 2; i++) {
if (checkRow(board, player, i) || checkColumn(board, player, i)) {
return true;
}
}

if(checkDiagonal(board, player)) {
return true;
}
if (checkDiagonal(board, player)) {
return true;
}

return false;
return false;
}

export function isGameOver(board) {
if(checkIfPlayerWon(board, 'X')) {
console.log('X has won the game!\n');
return true;
}
if (checkIfPlayerWon(board, "X")) {
console.log("X has won the game!\n");
return true;
}

if(checkIfPlayerWon(board, 'O')) {
console.log('O has won the game!\n');
return true;
}
if (checkIfPlayerWon(board, "O")) {
console.log("O has won the game!\n");
return true;
}

if(checkIfNoMovesLeft(board)) {
console.log('Game Over - It\s a tie!\n');
return true;
}
if (checkIfNoMovesLeft(board)) {
console.log("Game Over - Its a tie!\n");
return true;
}

return false;
return false;
}