From c3e1feffb9ac607bb73de6d4164be5fd23e41871 Mon Sep 17 00:00:00 2001 From: MikunoNaka Date: Thu, 22 Jul 2021 14:58:12 +0530 Subject: fixed wrong winner showing --- src/server/index.js | 65 ++--------------------------------------------------- 1 file changed, 2 insertions(+), 63 deletions(-) (limited to 'src/server') diff --git a/src/server/index.js b/src/server/index.js index 0fe20bb..97eeecc 100644 --- a/src/server/index.js +++ b/src/server/index.js @@ -21,35 +21,15 @@ const getLeftDiagonal = (board, i = 0) => const getRightDiagonal = (board, i = 2) => i >= 0 ? [getRow(board, 2-i)[i]].concat(getRightDiagonal(board, i-1)) : []; -// const endGame = (winner: number) => { -// const gameWinner = winner < 2 ? (winner === 1 ? "X" : "O") : "Draw"; -// props.setMessage(`WINNER: ${gameWinner}`); -// props.setShowMessage(true); -// gameWinner === "Draw" || (gameWinner === "X" -// ? props.setScoreX(props.scoreX + 1) -// : props.setScoreO(props.scoreO + 1)); -// setBoard([2,2,2,2,2,2,2,2,2]); -// winner < 2 && props.setTurn(winner); // set turn to prev. winner -// } -// -// useEffect(() => { -// if (board.includes(0) || board.includes(1)) { -// const rows = getRows(); -// (rows.some((i: number[]) => allEqual(i)) -// || getCols(rows).some((i: number[]) => allEqual(i)) -// || [getLeftDiagonal(), getRightDiagonal()].some((i) => allEqual(i)) -// ) ? endGame(turn === 0 ? 1 : 0) : (board.includes(2) || endGame(2)); -// } -// }); - io.on('connection', (socket) => { socket.on('update-remote-data', (data) => { + console.log(data) if (data.board.includes(0) || data.board.includes(1)) { const rows = getRows(data.board); (rows.some((i) => allEqual(i)) || getCols(rows).some((i) => allEqual(i)) || [getLeftDiagonal(data.board), getRightDiagonal(data.board)].some((i) => allEqual(i)) - ) ? io.emit('set winner') : (data.board.includes(2) || io.emit('set draw')) + ) ? io.emit('set winner', data.turn) : (data.board.includes(2) || io.emit('set draw')) } io.emit('update-client-data', {board: data.board, turn: data.turn === 0 ? 1 : 0}); }) @@ -63,44 +43,3 @@ const PORT = process.env.PORT || 5000; http.listen(PORT, () => { console.log(`App listening on port ${PORT}`); }); - - -/* - * const allEqual = (arr: number[]) => - arr.includes(2) ? false : arr.every(i => i === arr[0]) - - const getRow = (r: number) => board.slice(r * 3, (r * 3) + 3); - const getRows: any = (r: number = 0) => - r <= 2 ? [getRow(r)].concat(getRows(r+1)) : getRow(r) - - const getCol = (arr: number[][], c: number) => arr.map((i: any) => i[c]) - const getCols: any = (rows: number[][], c: number = 0) => - c < 2 ? [getCol(rows, c)].concat(getCols(rows, c+1)) : [getCol(rows, c)] - - const getLeftDiagonal: any = (i: number = 0) => - i < 3 ? [getRow(i)[i]].concat(getLeftDiagonal(i+1)) : []; - - const getRightDiagonal: any = (i: number = 2) => - i >= 0 ? [getRow(2-i)[i]].concat(getRightDiagonal(i-1)) : []; - - const endGame = (winner: number) => { - const gameWinner = winner < 2 ? (winner === 1 ? "X" : "O") : "Draw"; - props.setMessage(`WINNER: ${gameWinner}`); - props.setShowMessage(true); - gameWinner === "Draw" || (gameWinner === "X" - ? props.setScoreX(props.scoreX + 1) - : props.setScoreO(props.scoreO + 1)); - setBoard([2,2,2,2,2,2,2,2,2]); - winner < 2 && props.setTurn(winner); // set turn to prev. winner - } - - useEffect(() => { - if (board.includes(0) || board.includes(1)) { - const rows = getRows(); - (rows.some((i: number[]) => allEqual(i)) - || getCols(rows).some((i: number[]) => allEqual(i)) - || [getLeftDiagonal(), getRightDiagonal()].some((i) => allEqual(i)) - ) ? endGame(turn === 0 ? 1 : 0) : (board.includes(2) || endGame(2)); - } - }); - */ -- cgit v1.2.3