diff --git a/board-printer.js b/board-printer.js index e11a262..67f0aad 100644 --- a/board-printer.js +++ b/board-printer.js @@ -7,17 +7,48 @@ ['O', 'O', 'X'] ]; We should output something like this (feel free to be creative): - X | | + | X | | ================= - | X | + | | X | ================= - O | O | X + | O | O | X ================= + + + _X_ + 00X Test your function by calling it with an example tic-tac-toe board. */ + let board = [ + ["X", "_", "_"], + ["_", "X", "_"], + ["O", "O", "X"], + ]; + export function printBoard(board) { + let greeting = " "; + for (let array of board){ + for (let value of array) { + // console.log(value) + if( value ==="X"){ + greeting=greeting +"| x " + + } + if (value==="_"){ + greeting = greeting + "| "; + } + if (value==="0"){ + greeting = greeting + "| 0 "; + } + + } + greeting = greeting + "\n"+ "============="+"\n" + } +return greeting } +console.log(printBoard(board)) + /* Given a tic-tac-toe board (an array of arrays), - return true if there are no moves left to make (there are no more '_' values) diff --git a/move-maker.js b/move-maker.js index b462350..3906d7d 100644 --- a/move-maker.js +++ b/move-maker.js @@ -9,14 +9,25 @@ - you can output 'Try again...' - and then return false Testing your function by calling it with some values. An example board is: + let board = [ ['X', '_', '_'], ['_', 'X', '_'], ['O', 'O', 'X'] ]; */ +let board1 = [ + ["X", "_", "_"], + ["_", "X", "_"], + ["O", "O", "X"], +]; + function validateMove(move, board) { + + + // Implement this at the end if you have time, otherwise you can help your teammates! + return true; } diff --git a/status-checker.js b/status-checker.js index 7df4962..c7d2cb6 100644 --- a/status-checker.js +++ b/status-checker.js @@ -1,4 +1,18 @@ -import { checkIfNoMovesLeft } from './board-printer.js'; +import { checkIfNoMovesLeft } from "./board-printer.js"; + +//Example board: +let boardNoWinner = [ + ["X", "_", "_"], + ["_", "_", "_"], + ["O", "O", "X"], +]; + +//Example board: +let boardXWon = [ + ["X", "X", "X"], + ["_", "_", "_"], + ["O", "O", "X"], +]; /* Example board: @@ -18,7 +32,11 @@ import { checkIfNoMovesLeft } from './board-printer.js'; Otherwise, return false */ function checkRow(board, player, rowNumber) { + let newArr = board[rowNumber]; + return newArr.every((item) => item === player); } +console.log(checkRow(boardXWon, "X", 0)); +console.log(checkRow(boardNoWinner, "X", 0)); /* Given 3 parameters: @@ -28,8 +46,7 @@ function checkRow(board, player, rowNumber) { Return true if the player has made a move in all 3 squares in the column Otherwise, return false */ -function checkColumn(board, player, columnNumber) { -} +function checkColumn(board, player, columnNumber) {} /* Given 2 parameters: @@ -39,43 +56,42 @@ 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 } - /* 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; }