From 4d57dfa233b6be2cfc5980785ab657ec045d9ff3 Mon Sep 17 00:00:00 2001 From: Hatmos Date: Sun, 2 Aug 2026 23:27:55 +0200 Subject: [PATCH 1/2] fix: correction d'erreurs de copie --- server.js | 19 ------------------- server/doorLogic.js | 2 +- server/server.js | 15 ++++++++++++++- server/socketHandler.js | 2 +- server/timer.js | 4 ++-- 5 files changed, 18 insertions(+), 24 deletions(-) delete mode 100644 server.js diff --git a/server.js b/server.js deleted file mode 100644 index 0e0c900..0000000 --- a/server.js +++ /dev/null @@ -1,19 +0,0 @@ -const express = require("express"); -const path = require("path"); -const http = require("http"); -const { Server } = require("socket.io"); - -const { PORT } = require("./config"); -const { registerSocketHandlers } = require("./socketHandlers"); - -const app = express(); -const server = http.createServer(app); -const wSS = new Server(server); // wSS pour webSocketServer - -app.use(express.static(path.join(__dirname, "..", "client"))); - -wSS.on("connection", (socket) => registerSocketHandlers(wSS, socket)); - -server.listen(PORT, () => { - console.log(`serveur demarre sur http://localhost:${PORT}`); -}); diff --git a/server/doorLogic.js b/server/doorLogic.js index 665afd6..724a4df 100644 --- a/server/doorLogic.js +++ b/server/doorLogic.js @@ -11,7 +11,7 @@ const { correctDoor, startPosition } = require("./maze"); const { DOORS_TO_WIN } = require("./config"); -fonction handleDoorReached(wSS, socket, position) { +function handleDoorReached(wSS, socket, position) { const pairState = socket.data.pairState; if(!pairState || pairState.gameOver) return; // partie deja terminee diff --git a/server/server.js b/server/server.js index 47ec520..83aa07c 100644 --- a/server/server.js +++ b/server/server.js @@ -9,4 +9,17 @@ const path = require("path"); const http = require("http"); const { Server } = require("socket.io"); -const { PORT } = require("./config.js"); +const { PORT } = require("./config"); +const { registerSocketHandlers } = require("./socketHandler"); + +const app = express(); +const server = http.createServer(app); +const io = new Server(server); + +app.use(express.static(path.join(__dirname, "..", "client"))); + +io.on("connection", (socket) => registerSocketHandlers(io, socket)); + +server.listen(PORT, () => { + console.log(`Serveur démarré sur http://localhost:${PORT}`); +}); diff --git a/server/socketHandler.js b/server/socketHandler.js index b98fc08..1746aa0 100644 --- a/server/socketHandler.js +++ b/server/socketHandler.js @@ -57,7 +57,7 @@ function registerSocketHandlers(io, socket) { partnerSocket.emit("status", "Ton partenaire s'est deconnecte"); } } - )}; + }); } module.exports = { registerSocketHandlers }; diff --git a/server/timer.js b/server/timer.js index f60560d..1a295c5 100644 --- a/server/timer.js +++ b/server/timer.js @@ -4,9 +4,9 @@ minuteur autoritaire cote serveur */ -const GAME_DURATION = {"./config"}; +const GAME_DURATION = require("./config"); -fonction startTimer(socket, partnerSocket, pairState) { +function startTimer(socket, partnerSocket, pairState) { const interval = setInterval(() => { if (pairState.gameOver) { clearInterval(interval); From c4370815f299f86dd3af588bef51f20beb2476d9 Mon Sep 17 00:00:00 2001 From: Hatmos Date: Mon, 3 Aug 2026 00:21:31 +0200 Subject: [PATCH 2/2] fix: correction d'erreur dans le choix de bonne sortie --- client/index.html | 2 ++ client/js/canvas.js | 2 +- client/js/main.js | 5 +++-- client/{ => js}/maze.js | 2 +- server/config.js | 2 +- server/doorLogic.js | 4 ++-- server/maze.js | 2 +- server/socketHandler.js | 5 ++--- server/timer.js | 2 +- 9 files changed, 14 insertions(+), 12 deletions(-) rename client/{ => js}/maze.js (91%) diff --git a/client/index.html b/client/index.html index c954468..919dc9e 100644 --- a/client/index.html +++ b/client/index.html @@ -9,6 +9,7 @@

Echoes

+

Temps restant : --

+ diff --git a/client/js/canvas.js b/client/js/canvas.js index ef6ae42..07772a4 100644 --- a/client/js/canvas.js +++ b/client/js/canvas.js @@ -15,7 +15,7 @@ export function drawMaze() { ctx.clearRect(0, 0, canvas.width, canvas.height); for (let y = 0; y < maze.length; y++) { - for (let x = 0; y < maze.length; x++) { + for (let x = 0; x < maze[y].length; x++) { if (maze[y][x] === 1) ctx.fillStyle = "#333"; else if (maze[y][x] === 2) ctx.fillStyle = "gold"; else ctx.fillStyle = "#eee"; diff --git a/client/js/main.js b/client/js/main.js index af5c30e..a1f3123 100644 --- a/client/js/main.js +++ b/client/js/main.js @@ -12,9 +12,10 @@ import { showGameOver, showVictory, updateTimerDisplay } from "./ui.js"; setupMovement(); -socket.on("status", (msg) => console.log("Status: ", (msg)); - roleState.current = role; +socket.on("status", (msg) => console.log("Status: ", msg)); +socket.on("role", (role) => { + roleState.current = role; if (role === "explorateur") { render(); } else { diff --git a/client/maze.js b/client/js/maze.js similarity index 91% rename from client/maze.js rename to client/js/maze.js index 70cae59..66b8ce4 100644 --- a/client/maze.js +++ b/client/js/maze.js @@ -12,5 +12,5 @@ export const maze = [ [1,0,1,0,1,0,1], [1,0,1,1,1,0,1], [1,0,0,0,0,0,1], - [1,1,1,1,1,1,1] + [1,1,2,1,1,2,1] ]; diff --git a/server/config.js b/server/config.js index e1a0a01..1349f11 100644 --- a/server/config.js +++ b/server/config.js @@ -4,7 +4,7 @@ centralise les constante de reglage du jeu */ -module.export = { +module.exports = { PORT: process.env.PORT || 3000, GAME_DURATION: 60, DOORS_TO_WIN: 3, diff --git a/server/doorLogic.js b/server/doorLogic.js index 724a4df..8f65023 100644 --- a/server/doorLogic.js +++ b/server/doorLogic.js @@ -24,12 +24,12 @@ function handleDoorReached(wSS, socket, position) { const result = { correct: false }; socket.emit("door_result", result); if (partnerSocket) partnerSocket.emit("door_result", result); - result; + return; } pairState.doorsPassed++; - if (pairState.doorPassed >= DOORS_TO_WIN) { + if (pairState.doorsPassed >= DOORS_TO_WIN) { pairState.gameOver = true; socket.emit("victory"); if (partnerSocket) partnerSocket.emit("victory"); diff --git a/server/maze.js b/server/maze.js index 7b33235..f4e93f8 100644 --- a/server/maze.js +++ b/server/maze.js @@ -4,7 +4,7 @@ possede aussi l'information du point de depart */ -const correctDoor = { x: 3, y: 6}; +const correctDoor = { x: 2, y: 6}; const startPosition = { x: 1, y: 1 }; module.exports = { correctDoor, startPosition }; diff --git a/server/socketHandler.js b/server/socketHandler.js index 1746aa0..15da7ff 100644 --- a/server/socketHandler.js +++ b/server/socketHandler.js @@ -9,7 +9,7 @@ const { GAME_DURATION } = require("./config"); const { handleDoorReached } = require("./doorLogic"); const { startTimer } = require("./timer"); -function registerSocketHandlers(io, socket) { +function registerSocketHandlers(wSS, socket) { console.log(`Un client s'est connecté : ${socket.id}`); if (gameState.waitingPlayer === null) { @@ -27,7 +27,6 @@ function registerSocketHandlers(io, socket) { partner.data.role = partnerRole; socket.data.partnerId = partner.id; partner.data.partnerId = socket.id; - // État partagé par référence entre les deux sockets de la paire const pairState = { gameOver: false, doorsPassed: 0, timeLeft: GAME_DURATION }; socket.data.pairState = pairState; @@ -41,7 +40,7 @@ function registerSocketHandlers(io, socket) { startTimer(socket, partner, pairState); } - socket.on("door_reached", (position) => handleDoorReached(io, socket, position)); + socket.on("door_reached", (position) => handleDoorReached(wSS, socket, position)); socket.on("disconnect", () => { console.log(`Client déconnecté : ${socket.id}`); diff --git a/server/timer.js b/server/timer.js index 1a295c5..73664a1 100644 --- a/server/timer.js +++ b/server/timer.js @@ -4,7 +4,7 @@ minuteur autoritaire cote serveur */ -const GAME_DURATION = require("./config"); +const { GAME_DURATION } = require("./config"); function startTimer(socket, partnerSocket, pairState) { const interval = setInterval(() => {