From 08cf12ad99ee2cc122afb1443cd55a8aa74bcadd Mon Sep 17 00:00:00 2001 From: Jose134 Date: Wed, 22 Jan 2025 17:58:13 +0100 Subject: [PATCH] Add parseInt --- index.js | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index b63b3ed..4c9fb29 100644 --- a/index.js +++ b/index.js @@ -65,7 +65,7 @@ const handleDisconnect = (socket, playerRoomMap) => { const handleCreateRoom = (socket, data) => { const { username, rows, cols, bombs, autoflag, gameMode } = data; - const room = buildRoom(socket.id, username, rows, cols, bombs, autoflag, gameMode); + const room = buildRoom(socket.id, username, parseInt(rows), parseInt(cols), parseInt(bombs), autoflag, gameMode); rooms.set(room.id, room); playerRoomMap.set(socket.id, room); console.log('created room', room.id); @@ -384,17 +384,38 @@ const flagBombs = (board) => { const getSurroundingTiles = (board, idx) => { const { rows, cols } = board; - // Thanks copilot for writing this garbage so that I don't have to <3 - return [ - idx % cols !== 0 && board.tiles[idx - cols - 1], // top-left - board.tiles[idx - cols], // top - (idx + 1) % cols !== 0 && board.tiles[idx - cols + 1], // top-right - idx % cols !== 0 && board.tiles[idx - 1], // left - (idx + 1) % cols !== 0 && board.tiles[idx + 1], // right - idx % cols !== 0 && board.tiles[idx + cols - 1], // bottom-left - board.tiles[idx + cols], // bottom - (idx + 1) % cols !== 0 && board.tiles[idx + cols + 1] // bottom-right - ].filter(tile => tile); + const neighbors = []; + + const isTopBorder = idx < cols; + const isBottomBorder = idx >= (rows - 1) * cols; + const isLeftBorder = idx % cols === 0; + const isRightBorder = (idx + 1) % cols === 0; + + // Top left + neighbors.push(!isTopBorder && !isLeftBorder ? board.tiles[idx - cols - 1] : undefined); + + // Top + neighbors.push(!isTopBorder ? board.tiles[idx - cols] : undefined); + + // Top right + neighbors.push(!isTopBorder && !isRightBorder ? board.tiles[idx - cols + 1] : undefined); + + // Left + neighbors.push(!isLeftBorder ? board.tiles[idx - 1] : undefined); + + // Right + neighbors.push(!isRightBorder ? board.tiles[idx + 1] : undefined); + + // Bottom left + neighbors.push(!isBottomBorder && !isLeftBorder ? board.tiles[idx + cols - 1] : undefined); + + // Bottom + neighbors.push(!isBottomBorder ? board.tiles[idx + cols] : undefined); + + // Bottom right + neighbors.push(!isBottomBorder && !isRightBorder ? board.tiles[idx + cols + 1] : undefined); + + return neighbors.filter(tile => tile != undefined); }; const checkWinCondition = (players, board) => {