feat: add update position method

This commit is contained in:
Smigz 2023-11-25 20:18:02 -05:00
parent f56dfb8b95
commit 3534828db1

View file

@ -1,5 +1,5 @@
const game = (function() { const game = (function() {
const gameBoard = new Array(['', '', ''], ['', '', ''], ['', '', '']); let gameBoard = new Array(['', '', ''], ['', '', ''], ['', '', '']);
const resetGameBoard = () => { const resetGameBoard = () => {
gameBoard.forEach(item => { gameBoard.forEach(item => {
@ -9,33 +9,94 @@ const game = (function() {
}) })
} }
const playGame = function(){ const playGame = function(){
for (i=0; i<9; i++) { placeOnBoard(2, 'x');
let newNum = prompt("enter a number") printGameBoard();
printGameBoard(); // for (i=0; i<9; i++) {
}; // printGameBoard();
// };
// evalGameOutcome(gameBoard);
}; };
const placeOnBoard = (position, marker) => {
// places marker on the gameboard
switch (position) {
case 1:
gameBoard[0][0] = marker;
break;
case 2:
gameBoard[0][1] = marker;
break;
case 3:
gameBoard[0][2] = marker;
break;
case 4:
gameBoard[1][0] = marker;
break;
case 5:
gameBoard[1][1] = marker;
break;
case 6:
gameBoard[1][2] = marker;
break;
case 7:
gameBoard[2][0] = marker;
break;
case 8:
gameBoard[2][1] = marker;
break;
case 9:
gameBoard[2][2] = marker;
break;
default:
break;
}
}
const printGameBoard = () => console.log(gameBoard[0] + "\n" + gameBoard[1] + "\n" + gameBoard[2]); const printGameBoard = () => console.log(gameBoard[0] + "\n" + gameBoard[1] + "\n" + gameBoard[2]);
const evalGameOutcome = gameBoard => { const evalGameOutcome = gameBoard => {
// Checks if elements are equal
let isWinner = arr => arr.reduce(function(a,b) { return a === b ? a : false; });
// create new array of vertical game board // create a new array of the vertical indexes in the game board
let vertArray; let vertArray = [];
gameBoard.forEach((_, index) => vertArray.push(vert.map(e => e[index]))); gameBoard.forEach((_, index) => vertArray.push(gameBoard.map(e => e[index])));
// check for winner in landscape cases // create an array of diagnal pieces
const winnerTestHorizontal = checkgameBoard.forEach(element => { let diagArray = [
isWinner(element); [gameBoard[0][0], gameBoard[1][1], gameBoard[2][2]],
[gameBoard[0,2], gameBoard[1][1], gameBoard[2][0]]
]
let checkGameBoard = [gameBoard, diagArray, vertArray];
for (i=0; i<3; i++) {
let outcome = _evalGameOutcome(checkGameBoard[i]);
if (outcome) console.log(outcome[0]);
}
};
const _evalGameOutcome = arr => {
// Checks if array values are equal to determine winner
let isWinner = checkArr => checkArr.reduce(function(a,b) { return a === b ? a : false; });
const outcome = arr.find(element => {
let result = isWinner(element);
if (result != false) {
return result;
} else {
return false;
}
}); });
return outcome;
} };
return { playGame, printGameBoard }; return { playGame, printGameBoard };
})(); })();
game.playGame(); game.playGame();
// let gameBoard = [
// ['x', '', 'o'],
// ['', '', 'o'],
// ['x', 'o', 'o']
// ]