aboutsummaryrefslogtreecommitdiff
path: root/src/components/MultiplayerGrid.tsx
diff options
context:
space:
mode:
authorMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-07-22 14:16:22 +0530
committerMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-07-22 14:16:22 +0530
commit5f23dfc40ded0f5935843781829e67ffd5d77ab4 (patch)
tree1b962c5c970963e464a7872e0aebb9fc909f9a28 /src/components/MultiplayerGrid.tsx
parent89ffd511000413257a54b276a23b1a931d0b22e2 (diff)
now the board and turn are handled by backend
Diffstat (limited to 'src/components/MultiplayerGrid.tsx')
-rw-r--r--src/components/MultiplayerGrid.tsx21
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 (