From f9a2c2ca4baeea55d40a40863198729bda16022e Mon Sep 17 00:00:00 2001 From: thisissahaj Date: Thu, 13 Jun 2024 11:09:20 +0530 Subject: [PATCH] Added Minesweeper Easy --- Games/MineSweeper_Easy/README.md | 32 ++++ .../assets/images/MineSweeper_Easy.png | Bin 0 -> 20123 bytes Games/MineSweeper_Easy/index.html | 25 +++ Games/MineSweeper_Easy/script.js | 155 ++++++++++++++++++ Games/MineSweeper_Easy/style.css | 71 ++++++++ README.md | 2 +- assets/images/MineSweeper_Easy.png | Bin 0 -> 20123 bytes 7 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 Games/MineSweeper_Easy/README.md create mode 100644 Games/MineSweeper_Easy/assets/images/MineSweeper_Easy.png create mode 100644 Games/MineSweeper_Easy/index.html create mode 100644 Games/MineSweeper_Easy/script.js create mode 100644 Games/MineSweeper_Easy/style.css create mode 100644 assets/images/MineSweeper_Easy.png diff --git a/Games/MineSweeper_Easy/README.md b/Games/MineSweeper_Easy/README.md new file mode 100644 index 0000000000..5203e4a60b --- /dev/null +++ b/Games/MineSweeper_Easy/README.md @@ -0,0 +1,32 @@ +# **Game_Name** + +Mine Sweeper + +
+ +## **Description 📃** +- Minesweeper is a classic puzzle game that involves a grid of squares. Some squares contain mines, while others do not. +- The objective of the game is to reveal all the squares that do not contain mines without triggering any mines. + + +## **functionalities 🎮** +- Player can mark a cell as a mine if they suspect it. +- Player can reveal a cell to find it as a number +- If all the cells are opened without opening a mine, player wins! +- If any cell containing a mine is clicked, player loses. +- Restart button to restart the game from beginning + +
+ +## **How to play? 🕹ī¸** +- Left click on a cell to reveal it +- Right click on a cell to mark a flag if you suspect it is a mine +- If you reveal all the cells without revealing any of the cell containing a mine, you win + +
+ +## **Screenshots 📸** + +
+[image](/Games/MineSweeper_Easy/assets/images/MineSweeper_Easy.png) + diff --git a/Games/MineSweeper_Easy/assets/images/MineSweeper_Easy.png b/Games/MineSweeper_Easy/assets/images/MineSweeper_Easy.png new file mode 100644 index 0000000000000000000000000000000000000000..2baa566256a21159d4bf3f64b2574d30c9424db1 GIT binary patch literal 20123 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 + + + + + Minesweeper Game + + + +

Minesweeper

+
+

Rules:

+
    +
  • Click on a cell to reveal it.
  • +
  • Right-click on a cell to flag it as a mine.
  • +
  • Reveal all non-mine cells to win.
  • +
+

Total mines:

+
+
+
+ + + + diff --git a/Games/MineSweeper_Easy/script.js b/Games/MineSweeper_Easy/script.js new file mode 100644 index 0000000000..0db9a21cf0 --- /dev/null +++ b/Games/MineSweeper_Easy/script.js @@ -0,0 +1,155 @@ +const gameBoard = document.getElementById('gameBoard'); +const mineCountElement = document.getElementById('mineCount'); +const statusElement = document.getElementById('status'); +const restartButton = document.getElementById('restartButton'); +const boardSize = 10; +const mineCount = 10; + +let board = []; +let mineLocations = []; +let gameOver = false; + +function initBoard() { + board = Array.from({ length: boardSize }, () => + Array.from({ length: boardSize }, () => ({ + mine: false, + revealed: false, + flag: false, + adjacentMines: 0 + })) + ); + + mineLocations = []; + gameOver = false; + statusElement.textContent = ''; + + let minesPlaced = 0; + while (minesPlaced < mineCount) { + const row = Math.floor(Math.random() * boardSize); + const col = Math.floor(Math.random() * boardSize); + if (!board[row][col].mine) { + board[row][col].mine = true; + mineLocations.push({ row, col }); + minesPlaced++; + } + } + + for (let row = 0; row < boardSize; row++) { + for (let col = 0; col < boardSize; col++) { + if (!board[row][col].mine) { + const adjacentMines = getAdjacentCells(row, col).filter(cell => cell.mine).length; + board[row][col].adjacentMines = adjacentMines; + } + } + } + + renderBoard(); +} + +function getAdjacentCells(row, col) { + const cells = []; + for (let r = -1; r <= 1; r++) { + for (let c = -1; c <= 1; c++) { + if (r === 0 && c === 0) continue; + const newRow = row + r; + const newCol = col + c; + if (newRow >= 0 && newRow < boardSize && newCol >= 0 && newCol < boardSize) { + cells.push({ row: newRow, col: newCol, ...board[newRow][newCol] }); + } + } + } + return cells; +} + +function renderBoard() { + gameBoard.innerHTML = ''; + for (let row = 0; row < boardSize; row++) { + for (let col = 0; col < boardSize; col++) { + const cell = document.createElement('div'); + cell.classList.add('cell'); + if (board[row][col].revealed) { + cell.classList.add('revealed'); + if (board[row][col].mine) { + cell.classList.add('mine'); + cell.textContent = 'đŸ’Ŗ'; + } else if (board[row][col].adjacentMines > 0) { + cell.textContent = board[row][col].adjacentMines; + } + } + if (board[row][col].flag) { + cell.classList.add('flag'); + cell.textContent = '🚩'; + } + cell.addEventListener('click', () => onCellClick(row, col)); + cell.addEventListener('contextmenu', (e) => { + e.preventDefault(); + onCellRightClick(row, col); + }); + gameBoard.appendChild(cell); + } + } +} + +function onCellClick(row, col) { + if (gameOver || board[row][col].revealed || board[row][col].flag) return; + revealCell(row, col); + if (board[row][col].mine) { + alert('Game Over! You hit a mine.'); + revealAllMines(); + gameOver = true; + } else { + if (board[row][col].adjacentMines === 0) { + revealAdjacentCells(row, col); + } + if (checkWin()) { + statusElement.textContent = 'YOU WON!'; + gameOver = true; + } + } + renderBoard(); +} + +function onCellRightClick(row, col) { + if (gameOver || board[row][col].revealed) return; + board[row][col].flag = !board[row][col].flag; + renderBoard(); +} + +function revealCell(row, col) { + if (board[row][col].revealed) return; + board[row][col].revealed = true; +} + +function revealAdjacentCells(row, col) { + getAdjacentCells(row, col).forEach(cell => { + if (!cell.revealed && !cell.flag) { + revealCell(cell.row, cell.col); + if (cell.adjacentMines === 0) { + revealAdjacentCells(cell.row, cell.col); + } + } + }); +} + +function revealAllMines() { + mineLocations.forEach(({ row, col }) => { + board[row][col].revealed = true; + }); + renderBoard(); +} + +function checkWin() { + for (let row = 0; row < boardSize; row++) { + for (let col = 0; col < boardSize; col++) { + if (!board[row][col].mine && !board[row][col].revealed) { + return false; + } + } + } + return true; +} + +restartButton.addEventListener('click', initBoard); + +initBoard(); +mineCountElement.textContent = mineCount; diff --git a/Games/MineSweeper_Easy/style.css b/Games/MineSweeper_Easy/style.css new file mode 100644 index 0000000000..3b56520390 --- /dev/null +++ b/Games/MineSweeper_Easy/style.css @@ -0,0 +1,71 @@ +body { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; + margin: 0; + background-color: #1e1e1e; + color: #f0f0f0; + font-family: Arial, sans-serif; +} +li{ + text-align: left; +} + +h1 { + margin-bottom: 20px; +} + +.instructions { + margin-bottom: 20px; + text-align: center; +} + +#status { + margin-bottom: 20px; + font-size: 1.5em; + color: lime; +} + +#gameBoard { + display: grid; + grid-template-columns: repeat(10, 40px); + grid-template-rows: repeat(10, 40px); + gap: 2px; +} + +.cell { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background-color: #333; + border: 1px solid #555; + cursor: pointer; +} + +.cell.revealed { + background-color: #444; + cursor: default; +} + +.cell.mine { + background-color: red; +} + +.cell.flag { + background-color: yellow; +} + +button { + margin-top: 20px; + padding: 10px 20px; + font-size: 1em; + cursor: pointer; + border: none; + background-color: #444; + color: #f0f0f0; + border-radius: 5px; +} diff --git a/README.md b/README.md index bdffdb35d5..14d2672c4d 100644 --- a/README.md +++ b/README.md @@ -201,7 +201,7 @@ This repository also provides one such platforms where contributers come over an | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [DoraemonRun ](https://github.com/kunjgit/GameZone/tree/main/Games/DoraemonRun) | | [Memory_Cards_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Cards_Game) | -| [Typing_Speed_Test2](https://github.com/kunjgit/GameZone/tree/main/Games/Typing_Speed_Test2) | [Tic Tac Toe Responsive ](https://github.com/kunjgit/GameZone/tree/main/Games/Tic_tac_toe_responsive) | +| [Typing_Speed_Test2](https://github.com/kunjgit/GameZone/tree/main/Games/Typing_Speed_Test2) | [Tic Tac Toe Responsive ](https://github.com/kunjgit/GameZone/tree/main/Games/Tic_tac_toe_responsive) | [Minesweeper Easy ](https://github.com/kunjgit/GameZone/tree/main/Games/MineSweeper_Easy) | | [Technical_Mind_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Technical_Mind_Game) | [Slide_Master_Puzzle](https://github.com/kunjgit/GameZone/tree/Main/Games/Slide_Master_Puzz)| | | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [Letter_Sleuth](https://github.com/swetha5157/GameZone/tree/main/Games/Letter_Sleuth) diff --git a/assets/images/MineSweeper_Easy.png b/assets/images/MineSweeper_Easy.png new file mode 100644 index 0000000000000000000000000000000000000000..2baa566256a21159d4bf3f64b2574d30c9424db1 GIT binary patch literal 20123 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