Skip to content

Commit

Permalink
Store room FEN and leave rooms when back to home
Browse files Browse the repository at this point in the history
  • Loading branch information
jloh02 committed Jan 20, 2024
1 parent ab01b6c commit 470aed1
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
17 changes: 12 additions & 5 deletions backend/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ import { generateRoomCode } from "./utils/calc.js";
import dotenv from "dotenv";
import { Server } from "socket.io";
import { Chess } from "chess.js";
import "./utils/globals.js";

dotenv.config();

globalThis.roomFen = new Map();

const ENVIRONMENT = process.env.ENV || "dev";

const START_FEN = new Chess().fen();
const chess = new Chess();

let expressApp = express();
Expand Down Expand Up @@ -56,17 +60,20 @@ io.on("connection", (socket) => {
return;
}
socket.join(roomId);
globalThis.roomFen.set(roomId, START_FEN);

if (io.sockets.adapter.rooms.get(roomId).size === 2)
io.to(roomId).emit(
"start",
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",
socket.id
);
io.to(roomId).emit("start", START_FEN, socket.id);

callback("answer");
});

socket.on("leave", () => {
socket.rooms.forEach((roomId) => {
if (roomId !== socket.id) socket.leave(roomId);
});
});

socket.on("move", (move, callback) => {
console.log(socket.id, move);
const allowed = Math.random() < 0.7; //TODO LLM
Expand Down
1 change: 1 addition & 0 deletions backend/src/utils/globals.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
var roomFen: Map<string, string>;
3 changes: 2 additions & 1 deletion frontend/src/Landing.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useRef, useState } from "react";
import { Button, Grid, Header, Icon, Input } from "semantic-ui-react";
import { createRoom, joinRoom } from "./utils/socket";
import { createRoom, joinRoom, resetRoom } from "./utils/socket";

export default function Landing({
confirmedRoomCodeState,
Expand Down Expand Up @@ -48,6 +48,7 @@ export default function Landing({
onClick={() => {
setConfirmedRoomCode("");
setRoomCode("");
resetRoom();
}}
>
Back to Home
Expand Down
4 changes: 4 additions & 0 deletions frontend/src/utils/socket.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ export async function joinRoom(roomId: string) {
return response as boolean;
}

export function resetRoom() {
socket.emit("leave");
}

export async function move(move: string) {
return (await socket.emitWithAck("move", move)) as string;
}
Expand Down

0 comments on commit 470aed1

Please sign in to comment.