From 9e0f656829423a2013fe1dcd09b1604e7efefa08 Mon Sep 17 00:00:00 2001 From: Anshika Date: Fri, 14 Jun 2024 11:42:30 +0530 Subject: [PATCH 1/2] Puzzle game Added --- Games/puzzle-game/.vscode/settings.json | 3 + Games/puzzle-game/README.md | 27 ++++ Games/puzzle-game/favicon.jpg | Bin 0 -> 28782 bytes Games/puzzle-game/index.html | 57 ++++++++ Games/puzzle-game/main.js | 182 ++++++++++++++++++++++++ Games/puzzle-game/style.css | 131 +++++++++++++++++ assets/images/puzzle-game.png | Bin 0 -> 49793 bytes assets/js/gamesData.json | 5 + 8 files changed, 405 insertions(+) create mode 100644 Games/puzzle-game/.vscode/settings.json create mode 100644 Games/puzzle-game/README.md create mode 100644 Games/puzzle-game/favicon.jpg create mode 100644 Games/puzzle-game/index.html create mode 100644 Games/puzzle-game/main.js create mode 100644 Games/puzzle-game/style.css create mode 100644 assets/images/puzzle-game.png diff --git a/Games/puzzle-game/.vscode/settings.json b/Games/puzzle-game/.vscode/settings.json new file mode 100644 index 0000000000..6f3a2913e1 --- /dev/null +++ b/Games/puzzle-game/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/Games/puzzle-game/README.md b/Games/puzzle-game/README.md new file mode 100644 index 0000000000..3265d077f2 --- /dev/null +++ b/Games/puzzle-game/README.md @@ -0,0 +1,27 @@ +# **Sliding Puzzle Game** + +--- + +## **Description 📃** +Sliding Puzzle is a classic brain teaser game where the objective is to arrange a set of tiles or squares in a specific order by sliding them around a fixed grid. The game starts with the tiles in a scrambled state, and the player must rearrange them to match a target pattern or image. + +## **Functionalities 🎮** +- Randomized initial tile configuration +- Sliding tiles by clicking or tapping on adjacent empty spaces +- Tracking the number of moves made by the player +- Ability to reset the game to the initial scrambled state +- Providing visual feedback on the progress towards the solved state + +## **How to Play? 🕹ī¸** +1. The game board consists of a grid of square tiles, with one tile missing to create an empty space. +2. The tiles are initially arranged in a scrambled order. +3. To move a tile, click or tap on the tile adjacent to the empty space. The selected tile will slide into the empty space. +4. Continue sliding the tiles around the grid until the tiles are arranged in the correct order or pattern. +5. The goal is to rearrange the tiles to match the target configuration as quickly as possible, using the fewest number of moves. +6. If you get stuck, you can reset the game to start over from the initial scrambled state. + +## **Screenshots 📸** + + +## **Working Video 📹** + diff --git a/Games/puzzle-game/favicon.jpg b/Games/puzzle-game/favicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43bde2243cdbae299dd999ef031e2c93b9f5597a GIT binary patch literal 28782 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 + + + + + + Sliding Puzzle Game + + + + + + + + + + + + + + + + + +
+
+

Sliding Puzzle Game

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+ + + + diff --git a/Games/puzzle-game/main.js b/Games/puzzle-game/main.js new file mode 100644 index 0000000000..5fa2c068c3 --- /dev/null +++ b/Games/puzzle-game/main.js @@ -0,0 +1,182 @@ +const emptyTile = document.querySelector('#tile-empty'); +const shuffleBtn = document.querySelector('.shuffleBtn'); +const easyBtn = document.querySelector('.easyBtn'); +const mediumBtn = document.querySelector('.mediumBtn'); +const hardBtn = document.querySelector('.hardBtn'); +const board = document.querySelector('.puzzle-board'); +let tiles = document.querySelectorAll('.puzzle-tile'); +let tilePositions = []; + +let emptyTileIndex = 15; +let boardSize = 4; +let draggedTileIndex = 0; +let dragOverTileIndex = 0; + +easyBtn.addEventListener('click', () => { + initGame(8); +}); + +mediumBtn.addEventListener('click', () => { + initGame(15); +}); + +hardBtn.addEventListener('click', () => { + initGame(24); +}); + +shuffleBtn.addEventListener('click', () => { + shuffleBoxes(); +}); + +initGame(); + +function initGame(cube = 15) { + resetConfig(); + initDefaultValues(cube); + initCubesHTML(); + initStyles(); + initTilePositions(); + renderTiles(); + initDragFunctions(); + shuffleBoxes(); +} + +function initCubesHTML() { + board.innerHTML = ""; + for (let i = 0; i < emptyTileIndex + 1; i++) { + if (i + 1 === emptyTileIndex) { + board.innerHTML += ` +
+ `; + } else { + board.innerHTML += ` +
+ `; + } + } + tiles = document.querySelectorAll('.puzzle-tile'); +} + +function initStyles() { + if (emptyTileIndex === 8 || emptyTileIndex === 15 || emptyTileIndex === 24) { + const size = emptyTileIndex === 8 ? 3 : emptyTileIndex === 15 ? 4 : 5; + board.style.gridTemplateColumns = `repeat(${size}, 1fr)`; + board.style.gridTemplateRows = `repeat(${size}, 1fr)`; + } else { + resetConfig(); + initGame(); + } +} + +function initDefaultValues(cube) { + emptyTileIndex = cube; + boardSize = Math.sqrt(cube + 1); + draggedTileIndex = 0; + dragOverTileIndex = 0; +} + +function resetConfig() { + emptyTileIndex = 15; + draggedTileIndex = 0; + dragOverTileIndex = 0; + boardSize = 4; + tiles = document.querySelectorAll('.puzzle-tile'); +} + +function initTilePositions() { + tilePositions = []; + for (let i = 0; i < emptyTileIndex + 1; i++) { + if (i === emptyTileIndex) { + tilePositions.push(''); + } else { + tilePositions.push(i + 1); + } + } +} + +function shuffleBoxes() { + for (let i = tilePositions.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [tilePositions[i], tilePositions[j]] = [tilePositions[j], tilePositions[i]]; + } + renderTiles(); +} + +function initDragFunctions() { + tiles.forEach(tile => { + tile.addEventListener('dragstart', function () { + this.classList.add('dragging'); + draggedTileIndex = Array.from(tiles).indexOf(this); + if (this.classList.contains('empty-tile')) { + draggedTileIndex = emptyTileIndex; + } + }); + tile.addEventListener('dragover', function (event) { + event.preventDefault(); + this.classList.add('drag-over'); + dragOverTileIndex = Array.from(tiles).indexOf(this); + }); + tile.addEventListener('dragenter', function (event) { + event.preventDefault(); + }); + tile.addEventListener('dragleave', function () { + this.classList.remove('drag-over'); + }); + tile.addEventListener('drop', function () { + const isAdjacent = (draggedTileIndex === dragOverTileIndex - 1 || draggedTileIndex === dragOverTileIndex + 1 || + draggedTileIndex === dragOverTileIndex - boardSize || draggedTileIndex === dragOverTileIndex + boardSize); + if (draggedTileIndex !== undefined && dragOverTileIndex !== undefined && draggedTileIndex !== dragOverTileIndex && isAdjacent) { + const draggedTileIsTitled = !tiles[draggedTileIndex].classList.contains('empty-tile'); + const dropTargetIsTitled = !tiles[dragOverTileIndex].classList.contains('empty-tile'); + if ((draggedTileIsTitled && dropTargetIsTitled) || (!draggedTileIsTitled && !dropTargetIsTitled)) { + return; + } + [tilePositions[draggedTileIndex], tilePositions[dragOverTileIndex]] = [tilePositions[dragOverTileIndex], tilePositions[draggedTileIndex]]; + renderTiles(); + } + this.classList.remove('drag-over'); + checkWin(); + }); + tile.addEventListener('dragend', function () { + this.classList.remove('dragging'); + }); + }); +} + +function checkWin() { + let isWon = true; + const size = boardSize * boardSize; + for (let i = 1; i <= size; i++) { + if (i !== tilePositions[i - 1]) { + if (i === size && tilePositions[i - 1] === '') { + continue; + } + isWon = false; + break; + } + } + if (isWon) { + displayAlert('Congrats', 'success', 'you won game'); + initGame(emptyTileIndex); + } +} + +function renderTiles() { + for (let i = 0; i < tiles.length; i++) { + const tile = tiles[i]; + const tileNumber = tilePositions[i]; + tile.innerText = tileNumber; + tile.setAttribute('draggable', true); + tile.classList.remove('empty-tile'); + if (tileNumber === '') { + tile.innerText = ''; + tile.setAttribute('draggable', false); + tile.classList.add('empty-tile'); + emptyTileIndex = i; + } + } +} + +function displayAlert(title, icon, text) { + Swal.fire({ title, icon, text }); +} \ No newline at end of file diff --git a/Games/puzzle-game/style.css b/Games/puzzle-game/style.css new file mode 100644 index 0000000000..9140ddf987 --- /dev/null +++ b/Games/puzzle-game/style.css @@ -0,0 +1,131 @@ +body { + margin: 0px; + padding: 0px; +} + +main { + width: 100%; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +main .container { + max-width: 800px; + margin: 0 auto; + padding: 20px; + display: grid; + grid-template-columns: 1fr; + row-gap: 10px; +} + +main .container .title { + text-align: center; + font-size: 36px; + font-family: 'Montserrat', sans-serif; +} + +main .container .puzzle-board { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-template-rows: repeat(4, 1fr); + grid-gap: 10px; + background-color: #fff; + border: 2px solid #333; + padding: 10px; +} + +main .container .puzzle-board .puzzle-tile { + display: flex; + justify-content: center; + align-items: center; + font-size: 48px; + font-weight: bold; + color: #333; + background-color: #eee; + border: 2px solid #333; + cursor: pointer; + transition: all 0.3s ease; + user-select: none; +} + +main .container .puzzle-board .puzzle-tile:hover { + background-color: #ccc; +} + +main .container .puzzle-board .puzzle-tile.dragging { + opacity: 0.5; +} + +main .container .puzzle-board .puzzle-tile.empty-tile { + background-color: gray; + color: #fff; + border: none; + cursor: default; +} + +main .container .buttons { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 1rem; + user-select: none; +} + +main .container button { + display: block; + margin: 0 auto; + padding: 10px 12px; + font-size: 16px; + font-weight: bold; + color: #fff; + background-color: rgba(70, 131, 180, 0.7); + border: none; + border-radius: 3px; + cursor: pointer; + transition: all 0.3s ease; + user-select: none; +} + +main .container button.easyBtn { + background-color: rgba(0, 128, 0, 0.7); +} + +main .container button.easyBtn:hover { + background-color: rgba(0, 128, 0, 0.8); +} + +main .container button.mediumBtn { + background-color: rgba(255, 166, 0, 0.7); +} + +main .container button.mediumBtn:hover { + background-color: rgba(255, 166, 0, 0.8); +} + +main .container button.hardBtn { + background-color: rgba(255, 0, 0, 0.7); +} + +main .container button.hardBtn:hover { + background-color: rgba(255, 0, 0, 0.8); +} + +main .container button:hover { + background-color: rgba(70, 131, 180, 0.8); + box-shadow: rgba(0, 0, 0, 0.35) 0px 2px 5px; +} + +@media screen and (max-width: 400px) { + main .container .puzzle-board .puzzle-tile { + font-size: 32px; + } +} + +@media screen and (max-width: 380px) { + main .container .puzzle-board .puzzle-tile { + font-size: 30px; + } +} \ No newline at end of file diff --git a/assets/images/puzzle-game.png b/assets/images/puzzle-game.png new file mode 100644 index 0000000000000000000000000000000000000000..4cdad53c2d6f812510076905b05ce4bdadaabac2 GIT binary patch literal 49793 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 AcmMzZ literal 0 HcmV?d00001 diff --git a/assets/js/gamesData.json b/assets/js/gamesData.json index 9fd6705e79..877c49fa91 100644 --- a/assets/js/gamesData.json +++ b/assets/js/gamesData.json @@ -2126,6 +2126,11 @@ "gameTitle": "MathQuiz", "gameUrl": "MathQuiz", "thumbnailUrl": "MathQuiz.png" +}, +"420":{ + "gameTitle":"Puzzle-Game", + "gameUrl":"puzzle-game", + "thumbnailUrl":"puzzle-game.png" } } From 3a3ccdf2f05f0478880b4a872d43487a0bd28ad1 Mon Sep 17 00:00:00 2001 From: Anshika Date: Fri, 14 Jun 2024 11:45:01 +0530 Subject: [PATCH 2/2] README updated --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52c5bd6c83..4dac5f3e47 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ This repository also provides one such platforms where contributers come over an | [Block_Ninja] (https://github.com/kunjgit/GameZone/tree/main/Games/Block_Ninja) | | [Disney_Trivia](https://github.com/manmita/GameZone/tree/Disney_Trivia/Games/Disney_Trivia)| |[Harmony_Mixer](https://github.com/kunjgit/GameZone/tree/main/Games/Harmony_Mixer)| +|[puzzle-game](https://github.com/kunjgit/GameZone/tree/main/Games/puzzle-game)