diff options
author | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-07-22 14:16:22 +0530 |
---|---|---|
committer | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-07-22 14:16:22 +0530 |
commit | 5f23dfc40ded0f5935843781829e67ffd5d77ab4 (patch) | |
tree | 1b962c5c970963e464a7872e0aebb9fc909f9a28 /src/components | |
parent | 89ffd511000413257a54b276a23b1a931d0b22e2 (diff) |
now the board and turn are handled by backend
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/MultiplayerGrid.tsx | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/components/MultiplayerGrid.tsx b/src/components/MultiplayerGrid.tsx index 3d698e6..2643667 100644 --- a/src/components/MultiplayerGrid.tsx +++ b/src/components/MultiplayerGrid.tsx @@ -41,14 +41,27 @@ const MultiplayerGrid: React.FC<Props> = (props) => { const getBoard = (index: number) => { const newBoard: number[] = board.slice(0, index).concat(turn).concat(board.slice(index+1, 9)); - socket.emit("update-remote-board", newBoard); - props.setTurn(turn === 1 ? 0 : 1); + socket.emit("update-remote-data", {board: newBoard, turn: turn}); + // props.setTurn(turn === 0 ? 1 : 0); + } + + 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)); + socket.emit("update-remote-board", [2,2,2,2,2,2,2,2,2]); + winner < 2 && props.setTurn(winner); // set turn to prev. winner } useState(() => { - socket.on("update-client-board", (remoteBoard) => { - setBoard(remoteBoard); + socket.on("update-client-data", (data) => { + setBoard(data.board); + props.setTurn(data.turn); }); + socket.on("set winner", (turn) => endGame(turn)); }); return ( |