From a3ce8fdac92c037916c7a09fe490611720040e5b Mon Sep 17 00:00:00 2001 From: Disha Thakurata <146114938+dishathakurata@users.noreply.github.com> Date: Sun, 9 Jun 2024 10:36:29 +0530 Subject: [PATCH 01/33] Update style.css --- assets/css/style.css | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/assets/css/style.css b/assets/css/style.css index 956fb8b59f..19efe3a734 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -103,6 +103,14 @@ input:checked + .slider:before { color: #000000; } +.dark-theme #about { + color: black; +} + +.dark-theme .contributors h1 { + color: black; +} + a { text-decoration: none; color: #fff; @@ -2844,4 +2852,4 @@ box-shadow: 0px 0px 21px 0px rgba(204,153,255,1); */ background: linear-gradient(343deg, rgba(120, 47, 152, 1) 0%, rgba(5, 50, 129, 1) 82%, rgba(52, 39, 100, 1) 100%); filter: blur(600px); z-index: -10; -} \ No newline at end of file +} From 18007855881a1645736524b6b1e0765ec52f7c46 Mon Sep 17 00:00:00 2001 From: Disha Thakurata <146114938+dishathakurata@users.noreply.github.com> Date: Sun, 9 Jun 2024 10:37:50 +0530 Subject: [PATCH 02/33] Update script.js --- assets/js/script.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assets/js/script.js b/assets/js/script.js index bc7b8a82a2..31426a039e 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -201,11 +201,23 @@ function toggleTheme() { var slider = document.getElementById("themeToggle"); if (slider.checked) { disableDarkTheme(); + disableChangeColor(); } else { enableDarkTheme(); + changeColor(); } } +function changeColor() { + var contributor = document.getElementById('total-contributors'); + contributor.style.color = "black"; +} + +function disableChangeColor() { + var col = document.getElementById('total-contributors'); + col.style.color = "white"; +} + function enableDarkTheme() { var elements = document.getElementsByTagName('*'); for (var i = 0; i < elements.length; i++) { From b0b7631dcbe7f53140d3fd6d6aafa11e35e17602 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 14:37:30 +0200 Subject: [PATCH 03/33] First basics of pac man - pac man collects points and the dots disappear - ghosts exist and wander around --- PacMan/index.html | 22 ++++++ PacMan/jscrpt.js | 168 ++++++++++++++++++++++++++++++++++++++++++++++ PacMan/style.css | 91 +++++++++++++++++++++++++ 3 files changed, 281 insertions(+) create mode 100644 PacMan/index.html create mode 100644 PacMan/jscrpt.js create mode 100644 PacMan/style.css diff --git a/PacMan/index.html b/PacMan/index.html new file mode 100644 index 0000000000..1ef0d9ca8c --- /dev/null +++ b/PacMan/index.html @@ -0,0 +1,22 @@ + + + + + + + Pac-Man Game + + + + + + +
+ + +
Score: 0
+ + + + + diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js new file mode 100644 index 0000000000..8f55546a3c --- /dev/null +++ b/PacMan/jscrpt.js @@ -0,0 +1,168 @@ +document.addEventListener('DOMContentLoaded', () => { + // Get the game board element + const gameBoard = document.getElementById('gameBoard'); + + // Initialize variables + const grid = []; // Array to hold the grid cells + const rows = 20; // Number of rows in the grid + const cols = 20; // Number of columns in the grid + let score = 0; // Player's score + const totalPacDots = document.querySelectorAll('.pac-dot').length; // Total number of pac-dots in the game + + // Level layout (0 = empty, 1 = wall, 2 = pac-dot) + const layout = [ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,2,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,2,1, + 1,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1, + 1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1, + 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,2,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,2,1, + 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, + 1,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1, + 1,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,2,2,1, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,1, + 1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1, + 1,2,1,1,1,1,1,2,1,2,1,2,1,2,1,1,1,1,2,1, + 1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + ]; + +// Create the gameboard +layout.forEach((cell, index) => { + const div = document.createElement('div'); // Create a new div element for each cell + div.classList.add('cell'); // Add the 'cell' class to the div + + // Add wall class if the cell is a wall, pac-dot class if the cell contains a pac-dot + if (cell === 1) { + div.classList.add('wall'); // Add the 'wall' class to the div if the cell represents a wall + } else if (cell === 2) { + div.classList.add('pac-dot'); // Add the 'pac-dot' class to the div if the cell contains a pac-dot + } + + gameBoard.appendChild(div); // Add the div to the game board element in the HTML + grid.push(div); // Add the div element to the grid array for tracking +}); + + // Place Pac-Man + let pacmanCurrentIndex = 21; // Set Pac-Man's initial position to index 21 + grid[pacmanCurrentIndex].classList.add('pacman'); // Add 'pacman' class to the cell at Pac-Man's initial position + + // Remove pac-dot at initial position if present + if (grid[pacmanCurrentIndex].classList.contains('pac-dot')) { + grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove 'pac-dot' class if present at Pac-Man's initial position + score += 10; // Increase the score by 10 points + console.log('Score:', score); // Output the current score to the console +} + +// Function to move Pac-Man +const movePacman = () => { + if (direction !== null) { + let newIndex = pacmanCurrentIndex; // Initialize newIndex with the current Pac-Man index + + // Move Pac-Man based on the current direction + switch (direction) { + case 'ArrowUp': // Move Pac-Man up if the direction is 'ArrowUp' + // Check if moving up is possible and there is no wall in the way + if (pacmanCurrentIndex - cols >= 0 && !grid[pacmanCurrentIndex - cols].classList.contains('wall')) { + newIndex -= cols; // Move Pac-Man up by one row + } + break; + case 'ArrowDown': // Move Pac-Man down if the direction is 'ArrowDown' + // Check if moving down is possible and there is no wall in the way + if (pacmanCurrentIndex + cols < cols * rows && !grid[pacmanCurrentIndex + cols].classList.contains('wall')) { + newIndex += cols; // Move Pac-Man down by one row + } + break; + case 'ArrowLeft': // Move Pac-Man left if the direction is 'ArrowLeft' + // Check if moving left is possible and there is no wall in the way + if (pacmanCurrentIndex % cols !== 0 && !grid[pacmanCurrentIndex - 1].classList.contains('wall')) { + newIndex -= 1; // Move Pac-Man left by one column + } + break; + case 'ArrowRight': // Move Pac-Man right if the direction is 'ArrowRight' + // Check if moving right is possible and there is no wall in the way + if (pacmanCurrentIndex % cols < cols - 1 && !grid[pacmanCurrentIndex + 1].classList.contains('wall')) { + newIndex += 1; // Move Pac-Man right by one column + } + break; + } + + // Check if Pac-Man's position has changed + if (newIndex !== pacmanCurrentIndex) { + // Remove Pac-Man from the current position + grid[pacmanCurrentIndex].classList.remove('pacman'); + pacmanCurrentIndex = newIndex; // Update Pac-Man's current index + grid[pacmanCurrentIndex].classList.add('pacman'); // Add Pac-Man to the new position + + // Check if Pac-Man has eaten a pac-dot + if (grid[pacmanCurrentIndex].classList.contains('pac-dot')) { + grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove the pac-dot + score += 10; // Increase the score + document.getElementById('scoreValue').textContent = score; // Update the score display + console.log('Score:', score); + + // Check if all pac-dots are collected + if (score === totalPacDots * 10) { + console.log('Congratulations! You won!'); + } + } + } + } + }; + + // Check for keydown events to set Pac-Man's direction + document.addEventListener('keydown', (event) => { + const key = event.key; + if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) { + direction = key; // Set Pac-Man's direction based on the pressed key + } + }); + + // Game loop + setInterval(movePacman, 200); // Move Pac-Man every 200ms + + //Ghost + class Ghost { + constructor(startIndex, color) { + // Initialize Ghost + this.currentIndex = startIndex; // Set the current index of the ghost + this.color = color; // Set the color of the ghost + } + + moveGhost() { + const directions = [-1, +1, -cols, +cols]; // Possible directions for the ghost + let direction = directions[Math.floor(Math.random() * directions.length)]; // Initial direction + + // Move the ghost at regular intervals + this.timerId = setInterval(() => { + // Logic for ghost movement + const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost + if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { // Check if next move isn't a wall + // Remove ghost from the current position + grid[this.currentIndex].classList.remove('ghost', this.color); + // Move the ghost to the next position + this.currentIndex = nextMove; + // Place the ghost on the new position + grid[this.currentIndex].classList.add('ghost', this.color); + } else { + // Choose a new random direction if the ghost can't move + direction = directions[Math.floor(Math.random() * directions.length)]; + } + }, 200); // Move Ghost every 200ms + } + } + + // Create ghosts + const ghost1 = new Ghost(209, 'red'); // Place the first ghost + const ghost2 = new Ghost(229, 'blue'); // Place the second ghost + + // Start ghost movement + ghost1.moveGhost(); + ghost2.moveGhost(); +}); \ No newline at end of file diff --git a/PacMan/style.css b/PacMan/style.css new file mode 100644 index 0000000000..8d8db15d71 --- /dev/null +++ b/PacMan/style.css @@ -0,0 +1,91 @@ +body { + /* Center align the content vertically and horizontally */ + display: flex; + justify-content: center; + align-items: center; + /* Set the height of the body to 100% of the viewport height */ + height: 100vh; + /* Remove margin to prevent unwanted spacing */ + margin: 0; + /* Set background color to black */ + background-color: #000; +} + +#gameBoard { + /* Create a grid layout for the game board */ + display: grid; + /* Define 20 columns each with a width of 30px */ + grid-template-columns: repeat(20, 30px); + /* Define 20 rows each with a height of 30px */ + grid-template-rows: repeat(20, 30px); + /* Set the gap between grid items */ + gap: 2px; +} + +.cell { + width: 30px; + height: 30px; +} + +.wall { + background-color: blue; +} + +/*Space for the pac dots*/ +.pac-dot { + background-color: black; + /* Center align content vertically and horizontally */ + display: flex; + justify-content: center; + align-items: center; +} + +/*Pac dots themselves*/ +.pac-dot::after { + /*Create circle*/ + content: ''; + width: 10px; + height: 10px; + + background-color: white; + /*Create a rounded shape*/ + border-radius: 50%; +} + +/*Pac-Man*/ +.pacman { + background-color: yellow; + /*Create a round shape*/ + border-radius: 50%; +} + +/*Score display*/ +#score { + font-size: 24px; + font-weight: bold; + color: white; + background-color: black; + padding: 10px; +} + +/*Score value*/ +#scoreValue { + color: yellow; +} + + +/*Ghosts*/ +.ghost { + /*Set background color dynamically*/ + background-color: var(--ghost-color); +} + +/*Red ghost*/ +.red { + --ghost-color: red; +} + +/*Blue ghost*/ +.blue { + --ghost-color: green; +} From 22bc978e849ba3229d2a02b3e8e855d7cf5896ff Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 15:33:59 +0200 Subject: [PATCH 04/33] Ghost movements -improved ghost movements -ghosts follow pacman --- PacMan/jscrpt.js | 63 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 12 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index 8f55546a3c..edb0b9c392 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -137,22 +137,61 @@ const movePacman = () => { moveGhost() { const directions = [-1, +1, -cols, +cols]; // Possible directions for the ghost - let direction = directions[Math.floor(Math.random() * directions.length)]; // Initial direction - + + // Function to calculate distance between two indices on the grid + const distanceToPacman = (ghostIndex, pacmanIndex) => { + const ghostRow = Math.floor(ghostIndex / cols); + const ghostCol = ghostIndex % cols; + const pacmanRow = Math.floor(pacmanIndex / cols); + const pacmanCol = pacmanIndex % cols; + return Math.abs(ghostRow - pacmanRow) + Math.abs(ghostCol - pacmanCol); + }; + + // Function to choose the best direction towards Pac-Man + const chooseDirection = () => { + // Get Pac-Man's current index + const pacmanIndex = grid.findIndex(cell => cell.classList.contains('pacman')); + + // Calculate distances for each direction and filter out invalid moves + const validDirections = directions.filter(direction => { + const nextMove = this.currentIndex + direction; + return !grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost'); + }); + + // Sort directions by distance to Pac-Man + validDirections.sort((dir1, dir2) => { + const nextMove1 = this.currentIndex + dir1; + const nextMove2 = this.currentIndex + dir2; + return distanceToPacman(nextMove1, pacmanIndex) - distanceToPacman(nextMove2, pacmanIndex); + }); + + // Return the closest direction if available + return validDirections.length > 0 ? validDirections[0] : null; + }; + + let direction = chooseDirection(); // Initial direction + // Move the ghost at regular intervals this.timerId = setInterval(() => { // Logic for ghost movement - const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost - if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { // Check if next move isn't a wall - // Remove ghost from the current position - grid[this.currentIndex].classList.remove('ghost', this.color); - // Move the ghost to the next position - this.currentIndex = nextMove; - // Place the ghost on the new position - grid[this.currentIndex].classList.add('ghost', this.color); + if (direction !== null) { + const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost + + // Check if next move isn't a wall or another ghost + if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { + // Remove ghost from the current position + grid[this.currentIndex].classList.remove('ghost', this.color); + // Move the ghost to the next position + this.currentIndex = nextMove; + // Place the ghost on the new position + grid[this.currentIndex].classList.add('ghost', this.color); + } else { + // Choose a new direction if the ghost can't move + direction = chooseDirection(); + } } else { - // Choose a new random direction if the ghost can't move - direction = directions[Math.floor(Math.random() * directions.length)]; + // Choose a new direction if no valid direction is found + direction = chooseDirection(); } }, 200); // Move Ghost every 200ms } From e0d9d10e93af373573050b05639cfd6d8bf9b140 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 16:50:04 +0200 Subject: [PATCH 05/33] Stopping game -Game stops when player wins (using 200 score for test) -Game stops when player is touched by ghost --- PacMan/jscrpt.js | 223 +++++++++++++++++++++++++++++------------------ 1 file changed, 137 insertions(+), 86 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index edb0b9c392..b03afda5ca 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -7,7 +7,8 @@ document.addEventListener('DOMContentLoaded', () => { const rows = 20; // Number of rows in the grid const cols = 20; // Number of columns in the grid let score = 0; // Player's score - const totalPacDots = document.querySelectorAll('.pac-dot').length; // Total number of pac-dots in the game + let totalPacDots = 0; // Total number of pac-dots in the game + let gameOver = false; // Flag to track game over state // Level layout (0 = empty, 1 = wall, 2 = pac-dot) const layout = [ @@ -33,21 +34,22 @@ document.addEventListener('DOMContentLoaded', () => { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ]; -// Create the gameboard -layout.forEach((cell, index) => { - const div = document.createElement('div'); // Create a new div element for each cell - div.classList.add('cell'); // Add the 'cell' class to the div + // Create the gameboard + layout.forEach((cell, index) => { + const div = document.createElement('div'); // Create a new div element for each cell + div.classList.add('cell'); // Add the 'cell' class to the div - // Add wall class if the cell is a wall, pac-dot class if the cell contains a pac-dot - if (cell === 1) { - div.classList.add('wall'); // Add the 'wall' class to the div if the cell represents a wall - } else if (cell === 2) { - div.classList.add('pac-dot'); // Add the 'pac-dot' class to the div if the cell contains a pac-dot - } + // Add wall class if the cell is a wall, pac-dot class if the cell contains a pac-dot + if (cell === 1) { + div.classList.add('wall'); // Add the 'wall' class to the div if the cell represents a wall + } else if (cell === 2) { + div.classList.add('pac-dot'); // Add the 'pac-dot' class to the div if the cell contains a pac-dot + totalPacDots++; // Increment totalPacDots for each pac-dot found + } - gameBoard.appendChild(div); // Add the div to the game board element in the HTML - grid.push(div); // Add the div element to the grid array for tracking -}); + gameBoard.appendChild(div); // Add the div to the game board element in the HTML + grid.push(div); // Add the div element to the grid array for tracking + }); // Place Pac-Man let pacmanCurrentIndex = 21; // Set Pac-Man's initial position to index 21 @@ -55,68 +57,91 @@ layout.forEach((cell, index) => { // Remove pac-dot at initial position if present if (grid[pacmanCurrentIndex].classList.contains('pac-dot')) { - grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove 'pac-dot' class if present at Pac-Man's initial position - score += 10; // Increase the score by 10 points - console.log('Score:', score); // Output the current score to the console -} - -// Function to move Pac-Man -const movePacman = () => { - if (direction !== null) { - let newIndex = pacmanCurrentIndex; // Initialize newIndex with the current Pac-Man index - - // Move Pac-Man based on the current direction - switch (direction) { - case 'ArrowUp': // Move Pac-Man up if the direction is 'ArrowUp' - // Check if moving up is possible and there is no wall in the way - if (pacmanCurrentIndex - cols >= 0 && !grid[pacmanCurrentIndex - cols].classList.contains('wall')) { - newIndex -= cols; // Move Pac-Man up by one row - } - break; - case 'ArrowDown': // Move Pac-Man down if the direction is 'ArrowDown' - // Check if moving down is possible and there is no wall in the way - if (pacmanCurrentIndex + cols < cols * rows && !grid[pacmanCurrentIndex + cols].classList.contains('wall')) { - newIndex += cols; // Move Pac-Man down by one row - } - break; - case 'ArrowLeft': // Move Pac-Man left if the direction is 'ArrowLeft' - // Check if moving left is possible and there is no wall in the way - if (pacmanCurrentIndex % cols !== 0 && !grid[pacmanCurrentIndex - 1].classList.contains('wall')) { - newIndex -= 1; // Move Pac-Man left by one column - } - break; - case 'ArrowRight': // Move Pac-Man right if the direction is 'ArrowRight' - // Check if moving right is possible and there is no wall in the way - if (pacmanCurrentIndex % cols < cols - 1 && !grid[pacmanCurrentIndex + 1].classList.contains('wall')) { - newIndex += 1; // Move Pac-Man right by one column - } - break; - } + grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove 'pac-dot' class if present at Pac-Man's initial position + score += 10; // Increase the score by 10 points + document.getElementById('scoreValue').textContent = score; // Update the score display + console.log('Score:', score); // Output the current score to the console + } - // Check if Pac-Man's position has changed - if (newIndex !== pacmanCurrentIndex) { - // Remove Pac-Man from the current position - grid[pacmanCurrentIndex].classList.remove('pacman'); - pacmanCurrentIndex = newIndex; // Update Pac-Man's current index - grid[pacmanCurrentIndex].classList.add('pacman'); // Add Pac-Man to the new position - - // Check if Pac-Man has eaten a pac-dot - if (grid[pacmanCurrentIndex].classList.contains('pac-dot')) { - grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove the pac-dot - score += 10; // Increase the score - document.getElementById('scoreValue').textContent = score; // Update the score display - console.log('Score:', score); - - // Check if all pac-dots are collected - if (score === totalPacDots * 10) { - console.log('Congratulations! You won!'); - } + // Function to move Pac-Man + const movePacman = () => { + if (!gameOver && direction !== null) { + let newIndex = pacmanCurrentIndex; // Initialize newIndex with the current Pac-Man index + + // Move Pac-Man based on the current direction + switch (direction) { + case 'ArrowUp': // Move Pac-Man up if the direction is 'ArrowUp' + // Check if moving up is possible and there is no wall in the way + if (pacmanCurrentIndex - cols >= 0 && !grid[pacmanCurrentIndex - cols].classList.contains('wall')) { + newIndex -= cols; // Move Pac-Man up by one row + } + break; + case 'ArrowDown': // Move Pac-Man down if the direction is 'ArrowDown' + // Check if moving down is possible and there is no wall in the way + if (pacmanCurrentIndex + cols < cols * rows && !grid[pacmanCurrentIndex + cols].classList.contains('wall')) { + newIndex += cols; // Move Pac-Man down by one row + } + break; + case 'ArrowLeft': // Move Pac-Man left if the direction is 'ArrowLeft' + // Check if moving left is possible and there is no wall in the way + if (pacmanCurrentIndex % cols !== 0 && !grid[pacmanCurrentIndex - 1].classList.contains('wall')) { + newIndex -= 1; // Move Pac-Man left by one column + } + break; + case 'ArrowRight': // Move Pac-Man right if the direction is 'ArrowRight' + // Check if moving right is possible and there is no wall in the way + if (pacmanCurrentIndex % cols < cols - 1 && !grid[pacmanCurrentIndex + 1].classList.contains('wall')) { + newIndex += 1; // Move Pac-Man right by one column + } + break; + } + + // Check if Pac-Man's position has changed + if (newIndex !== pacmanCurrentIndex) { + // Remove Pac-Man from the current position + grid[pacmanCurrentIndex].classList.remove('pacman'); + pacmanCurrentIndex = newIndex; // Update Pac-Man's current index + grid[pacmanCurrentIndex].classList.add('pacman'); // Add Pac-Man to the new position + + // Check if Pac-Man has eaten a pac-dot + if (grid[pacmanCurrentIndex].classList.contains('pac-dot')) { + grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove the pac-dot + score += 10; // Increase the score + document.getElementById('scoreValue').textContent = score; // Update the score display + console.log('Score:', score); + + // Call checkForWin function after updating score + checkForWin(); } } } }; + // Function to check for win condition + const checkForWin = () => { + if (score === 200) { // Aanpassen naar de gewenste winvoorwaarde + clearInterval(gameLoop); // Stop the game loop + + // Stop ghost movements + ghost1.stop(); + ghost2.stop(); + + // Display win message after a short delay + setTimeout(() => { + alert("Congratulations! You won!"); + }, 500); + + gameOver = true; // Set game over flag + clearInterval(gameLoop); // Stop the game loop + + // Optionally, reset the game here if needed + resetGame(); + } +}; + + // Check for keydown events to set Pac-Man's direction + let direction = null; // Initialize direction as null document.addEventListener('keydown', (event) => { const key = event.key; if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) { @@ -124,20 +149,38 @@ const movePacman = () => { } }); + // Function to end the game + const endGame = (isWin) => { + gameOver = true; // Set game over flag + clearInterval(gameLoop); // Stop the game loop + + // Stop ghost movements + ghost1.stop(); + ghost2.stop(); + + // Display game over message + const message = isWin ? 'Congratulations! You won!' : 'Game over! You lost!'; + alert(message); // Display a simple alert message + + // Optionally, you could reset the game here if needed + resetGame(); + }; + // Game loop - setInterval(movePacman, 200); // Move Pac-Man every 200ms + const gameLoop = setInterval(movePacman, 200); // Move Pac-Man every 200ms - //Ghost + // Ghost class Ghost { constructor(startIndex, color) { // Initialize Ghost this.currentIndex = startIndex; // Set the current index of the ghost this.color = color; // Set the color of the ghost - } + this.timerId = null; // Timer ID for ghost movement interval + } moveGhost() { const directions = [-1, +1, -cols, +cols]; // Possible directions for the ghost - + // Function to calculate distance between two indices on the grid const distanceToPacman = (ghostIndex, pacmanIndex) => { const ghostRow = Math.floor(ghostIndex / cols); @@ -146,37 +189,37 @@ const movePacman = () => { const pacmanCol = pacmanIndex % cols; return Math.abs(ghostRow - pacmanRow) + Math.abs(ghostCol - pacmanCol); }; - + // Function to choose the best direction towards Pac-Man const chooseDirection = () => { // Get Pac-Man's current index const pacmanIndex = grid.findIndex(cell => cell.classList.contains('pacman')); - + // Calculate distances for each direction and filter out invalid moves const validDirections = directions.filter(direction => { const nextMove = this.currentIndex + direction; return !grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost'); }); - + // Sort directions by distance to Pac-Man validDirections.sort((dir1, dir2) => { const nextMove1 = this.currentIndex + dir1; const nextMove2 = this.currentIndex + dir2; return distanceToPacman(nextMove1, pacmanIndex) - distanceToPacman(nextMove2, pacmanIndex); }); - + // Return the closest direction if available return validDirections.length > 0 ? validDirections[0] : null; }; - + let direction = chooseDirection(); // Initial direction - + // Move the ghost at regular intervals this.timerId = setInterval(() => { // Logic for ghost movement - if (direction !== null) { + if (!gameOver && direction !== null) { const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost - + // Check if next move isn't a wall or another ghost if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { // Remove ghost from the current position @@ -189,14 +232,21 @@ const movePacman = () => { // Choose a new direction if the ghost can't move direction = chooseDirection(); } - } else { - // Choose a new direction if no valid direction is found - direction = chooseDirection(); + + // Check if the ghost touched Pac-Man + if (this.currentIndex === pacmanCurrentIndex) { + gameOver = true; + endGame(false); // Pac-Man loses + } } }, 200); // Move Ghost every 200ms } + + stop() { + clearInterval(this.timerId); // Stop the ghost movement + } } - + // Create ghosts const ghost1 = new Ghost(209, 'red'); // Place the first ghost const ghost2 = new Ghost(229, 'blue'); // Place the second ghost @@ -204,4 +254,5 @@ const movePacman = () => { // Start ghost movement ghost1.moveGhost(); ghost2.moveGhost(); -}); \ No newline at end of file +}); + From 655f6600058844119de0ca040c4b259594e23763 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 17:11:36 +0200 Subject: [PATCH 06/33] Update Update gamewin --- PacMan/jscrpt.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index b03afda5ca..e0254a712d 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -120,6 +120,7 @@ document.addEventListener('DOMContentLoaded', () => { // Function to check for win condition const checkForWin = () => { if (score === 200) { // Aanpassen naar de gewenste winvoorwaarde + gameOver = true; // Set game over flag clearInterval(gameLoop); // Stop the game loop // Stop ghost movements @@ -131,15 +132,11 @@ document.addEventListener('DOMContentLoaded', () => { alert("Congratulations! You won!"); }, 500); - gameOver = true; // Set game over flag - clearInterval(gameLoop); // Stop the game loop - // Optionally, reset the game here if needed resetGame(); } }; - // Check for keydown events to set Pac-Man's direction let direction = null; // Initialize direction as null document.addEventListener('keydown', (event) => { From 89eacc9b5765891b6b81dc2c3420cf9e4866b866 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 18:05:22 +0200 Subject: [PATCH 07/33] Small code updates --- PacMan/jscrpt.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index e0254a712d..2b19aea9b3 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -119,7 +119,7 @@ document.addEventListener('DOMContentLoaded', () => { // Function to check for win condition const checkForWin = () => { - if (score === 200) { // Aanpassen naar de gewenste winvoorwaarde + if (score === 300) { // Total score won gameOver = true; // Set game over flag clearInterval(gameLoop); // Stop the game loop @@ -132,7 +132,7 @@ document.addEventListener('DOMContentLoaded', () => { alert("Congratulations! You won!"); }, 500); - // Optionally, reset the game here if needed + // Reset the game resetGame(); } }; @@ -156,10 +156,12 @@ document.addEventListener('DOMContentLoaded', () => { ghost2.stop(); // Display game over message - const message = isWin ? 'Congratulations! You won!' : 'Game over! You lost!'; - alert(message); // Display a simple alert message + // Display win message after a short delay + setTimeout(() => { + alert("Game over! You lost!"); + }, 500); - // Optionally, you could reset the game here if needed + // Reset the game resetGame(); }; @@ -251,5 +253,4 @@ document.addEventListener('DOMContentLoaded', () => { // Start ghost movement ghost1.moveGhost(); ghost2.moveGhost(); -}); - +}); \ No newline at end of file From 3a69bbfa508e106605895cc138b7896d0914b381 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 18:30:41 +0200 Subject: [PATCH 08/33] Update comment --- PacMan/jscrpt.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index 2b19aea9b3..78d14b4ac7 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -154,10 +154,9 @@ document.addEventListener('DOMContentLoaded', () => { // Stop ghost movements ghost1.stop(); ghost2.stop(); - - // Display game over message - // Display win message after a short delay - setTimeout(() => { + + // Display win message after a short delay + setTimeout(() => { alert("Game over! You lost!"); }, 500); From dea6e13aef33716e2c96932d62146a0346831e92 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:13:54 +0200 Subject: [PATCH 09/33] Game ends -game ends when player wins -game ends when lives are up and ghost gets the player -display lives --- PacMan/index.html | 6 + PacMan/jscrpt.js | 315 +++++++++++++++++++++++++++------------------- PacMan/style.css | 18 +++ 3 files changed, 212 insertions(+), 127 deletions(-) diff --git a/PacMan/index.html b/PacMan/index.html index 1ef0d9ca8c..2a7dd4a7fc 100644 --- a/PacMan/index.html +++ b/PacMan/index.html @@ -15,6 +15,12 @@
Score: 0
+ +
+ Lives: + + +
diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index 78d14b4ac7..a4c35a2e8a 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -7,8 +7,10 @@ document.addEventListener('DOMContentLoaded', () => { const rows = 20; // Number of rows in the grid const cols = 20; // Number of columns in the grid let score = 0; // Player's score + let lives = 3; // Player's lives let totalPacDots = 0; // Total number of pac-dots in the game let gameOver = false; // Flag to track game over state + let gameLoop; // Variable to hold game loop interval // Level layout (0 = empty, 1 = wall, 2 = pac-dot) const layout = [ @@ -60,7 +62,6 @@ document.addEventListener('DOMContentLoaded', () => { grid[pacmanCurrentIndex].classList.remove('pac-dot'); // Remove 'pac-dot' class if present at Pac-Man's initial position score += 10; // Increase the score by 10 points document.getElementById('scoreValue').textContent = score; // Update the score display - console.log('Score:', score); // Output the current score to the console } // Function to move Pac-Man @@ -113,6 +114,15 @@ document.addEventListener('DOMContentLoaded', () => { // Call checkForWin function after updating score checkForWin(); } + + // Check for collision with ghosts after Pac-Man moves + checkCollision(); // Check collision after each move + } + + // Check if Pac-Man's position after movement ends the game + if (lives === 0) { + gameOver = true; + endGame(); // Game over } } }; @@ -120,136 +130,187 @@ document.addEventListener('DOMContentLoaded', () => { // Function to check for win condition const checkForWin = () => { if (score === 300) { // Total score won - gameOver = true; // Set game over flag - clearInterval(gameLoop); // Stop the game loop - - // Stop ghost movements - ghost1.stop(); - ghost2.stop(); - - // Display win message after a short delay - setTimeout(() => { - alert("Congratulations! You won!"); - }, 500); - - // Reset the game - resetGame(); - } -}; - - // Check for keydown events to set Pac-Man's direction - let direction = null; // Initialize direction as null - document.addEventListener('keydown', (event) => { - const key = event.key; - if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) { - direction = key; // Set Pac-Man's direction based on the pressed key - } - }); - - // Function to end the game - const endGame = (isWin) => { - gameOver = true; // Set game over flag - clearInterval(gameLoop); // Stop the game loop - - // Stop ghost movements - ghost1.stop(); - ghost2.stop(); + gameOver = true; // Set game over flag + clearInterval(gameLoop); // Stop the game loop - // Display win message after a short delay - setTimeout(() => { - alert("Game over! You lost!"); - }, 500); - - // Reset the game - resetGame(); - }; - - // Game loop - const gameLoop = setInterval(movePacman, 200); // Move Pac-Man every 200ms + // Stop ghost movements + ghost1.stop(); + ghost2.stop(); + + // Display win message after a short delay + setTimeout(() => { + alert("Congratulations! You won!"); + }, 500); - // Ghost - class Ghost { - constructor(startIndex, color) { - // Initialize Ghost - this.currentIndex = startIndex; // Set the current index of the ghost - this.color = color; // Set the color of the ghost - this.timerId = null; // Timer ID for ghost movement interval } + }; + + // Check for keydown events to set Pac-Man's direction + let direction = null; // Initialize direction as null + document.addEventListener('keydown', (event) => { + const key = event.key; + if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) { + direction = key; // Set Pac-Man's direction based on the pressed key + } + }); - moveGhost() { - const directions = [-1, +1, -cols, +cols]; // Possible directions for the ghost - - // Function to calculate distance between two indices on the grid - const distanceToPacman = (ghostIndex, pacmanIndex) => { - const ghostRow = Math.floor(ghostIndex / cols); - const ghostCol = ghostIndex % cols; - const pacmanRow = Math.floor(pacmanIndex / cols); - const pacmanCol = pacmanIndex % cols; - return Math.abs(ghostRow - pacmanRow) + Math.abs(ghostCol - pacmanCol); - }; - - // Function to choose the best direction towards Pac-Man - const chooseDirection = () => { - // Get Pac-Man's current index - const pacmanIndex = grid.findIndex(cell => cell.classList.contains('pacman')); - - // Calculate distances for each direction and filter out invalid moves - const validDirections = directions.filter(direction => { - const nextMove = this.currentIndex + direction; - return !grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost'); - }); - - // Sort directions by distance to Pac-Man - validDirections.sort((dir1, dir2) => { - const nextMove1 = this.currentIndex + dir1; - const nextMove2 = this.currentIndex + dir2; - return distanceToPacman(nextMove1, pacmanIndex) - distanceToPacman(nextMove2, pacmanIndex); - }); - - // Return the closest direction if available - return validDirections.length > 0 ? validDirections[0] : null; - }; - - let direction = chooseDirection(); // Initial direction - - // Move the ghost at regular intervals - this.timerId = setInterval(() => { - // Logic for ghost movement - if (!gameOver && direction !== null) { - const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost - - // Check if next move isn't a wall or another ghost - if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { - // Remove ghost from the current position - grid[this.currentIndex].classList.remove('ghost', this.color); - // Move the ghost to the next position - this.currentIndex = nextMove; - // Place the ghost on the new position - grid[this.currentIndex].classList.add('ghost', this.color); - } else { - // Choose a new direction if the ghost can't move - direction = chooseDirection(); - } - - // Check if the ghost touched Pac-Man - if (this.currentIndex === pacmanCurrentIndex) { - gameOver = true; - endGame(false); // Pac-Man loses + // Initialize lives using a for loop + for (let lives = 3; lives > 0; lives--) { + } + + // Function to end the game + const endGame = () => { + clearInterval(gameLoop); // Stop the game loop + + // Stop ghost movements + ghost1.stop(); + ghost2.stop(); + + // Display game over message after a short delay + setTimeout(() => { + alert("Game over! You lost!"); + }, 500); + }; + + // Game loop + gameLoop = setInterval(movePacman, 200); // Move Pac-Man every 200ms + + // Ghost + class Ghost { + constructor(startIndex, color) { + // Initialize Ghost + this.currentIndex = startIndex; // Set the current index of the ghost + this.color = color; // Set the color of the ghost + this.timerId = null; // Timer ID for ghost movement interval + } + + moveGhost() { + const directions = [-1, +1, -cols, +cols]; // Possible directions for the ghost + + // Function to calculate distance between two indices on the grid + const distanceToPacman = (ghostIndex, pacmanIndex) => { + const ghostRow = Math.floor(ghostIndex / cols); + const ghostCol = ghostIndex % cols; + const pacmanRow = Math.floor(pacmanIndex / cols); + const pacmanCol = pacmanIndex % cols; + return Math.abs(ghostRow - pacmanRow) + Math.abs(ghostCol - pacmanCol); + }; + + // Function to choose the best direction towards Pac-Man + const chooseDirection = () => { + // Get Pac-Man's current index + const pacmanIndex = grid.findIndex(cell => cell.classList.contains('pacman')); + + // Calculate distances for each direction and filter out invalid moves + const validDirections = directions.filter(direction => { + const nextMove = this.currentIndex + direction; + return !grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost'); + }); + + // Sort directions by distance to Pac-Man + validDirections.sort((dir1, dir2) => { + const nextMove1 = this.currentIndex + dir1; + const nextMove2 = this.currentIndex + dir2; + return distanceToPacman(nextMove1, pacmanIndex) - distanceToPacman(nextMove2, pacmanIndex); + }); + + // Return the closest direction if available + return validDirections.length > 0 ? validDirections[0] : null; + }; + + let direction = chooseDirection(); // Initial direction + + // Move the ghost at regular intervals + this.timerId = setInterval(() => { + // Logic for ghost movement + if (!gameOver && direction !== null) { + const nextMove = this.currentIndex + direction; // Calculate the next potential position for the ghost + + // Check if next move isn't a wall or another ghost + if (!grid[nextMove].classList.contains('wall') && !grid[nextMove].classList.contains('ghost')) { + // Remove ghost from the current position + grid[this.currentIndex].classList.remove('ghost', this.color); + // Move the ghost to the next position + this.currentIndex = nextMove; + // Place the ghost on the new position + grid[this.currentIndex].classList.add('ghost', this.color); + } else { + // Choose a new direction if the ghost can't move + direction = chooseDirection(); + } + + // Check if the ghost touched Pac-Man + if (this.currentIndex === pacmanCurrentIndex) { + lives--; // Decrease lives + document.getElementById('livesValue').textContent = lives; // Update lives display + + if (lives === 0) { + gameOver = true; + endGame(); // Game over + } else { + // Reset Pac-Man's position + grid[pacmanCurrentIndex].classList.remove('pacman'); + pacmanCurrentIndex = 21; + grid[pacmanCurrentIndex].classList.add('pacman'); + } + } } - } - }, 200); // Move Ghost every 200ms - } - - stop() { - clearInterval(this.timerId); // Stop the ghost movement + }, 200); // Move Ghost every 200ms + } + + stop() { + clearInterval(this.timerId); // Stop the ghost movement + } } - } - - // Create ghosts - const ghost1 = new Ghost(209, 'red'); // Place the first ghost - const ghost2 = new Ghost(229, 'blue'); // Place the second ghost + + // Create ghosts + const ghost1 = new Ghost(209, 'red'); // Place the first ghost + const ghost2 = new Ghost(229, 'blue'); // Place the second ghost + + // Start ghost movement + ghost1.moveGhost(); + ghost2.moveGhost(); + + // Define the lifeIcons array globally + const lifeIcons = [ + document.getElementById('life1'), + document.getElementById('life2'), + ]; + + const updateLivesDisplay = () => { + console.log('Updating lives display. Current lives:', lives); + for (let i = 0; i < lifeIcons.length; i++) { + if (i < lives) { + lifeIcons[i].style.display = 'inline'; // Display the life icon + } else { + lifeIcons[i].style.display = 'none'; // Hide the life icon + } + console.log(`Life icon ${i + 1}: display is ${lifeIcons[i].style.display}`); + } + }; + + const checkCollision = () => { + if (grid[pacmanCurrentIndex].classList.contains('ghost')) { + lives--; // Decrease lives + updateLivesDisplay(); // Update visual display of lives + + // Reset Pac-Man's position + grid[pacmanCurrentIndex].classList.remove('pacman'); + pacmanCurrentIndex = 21; + grid[pacmanCurrentIndex].classList.add('pacman'); + + // Update lives count in the HTML element + document.getElementById('livesValue').textContent = lives; + + // Check if there are no lives left + if (lives === 0) { + gameOver = true; + endGame(); // Game over + } + } + }; + + // Check for collision on Pac-Man movement + setInterval(checkCollision, 200); // Check collision every 200ms + }); - // Start ghost movement - ghost1.moveGhost(); - ghost2.moveGhost(); -}); \ No newline at end of file diff --git a/PacMan/style.css b/PacMan/style.css index 8d8db15d71..2c9c3bcd2a 100644 --- a/PacMan/style.css +++ b/PacMan/style.css @@ -89,3 +89,21 @@ body { .blue { --ghost-color: green; } + +/* CSS voor het weergeven van levens */ +#livesContainer { + margin-top: 20px; + font-size: 20px; + font-weight: bold; + color: white; +} + +.life { + display: inline-block; + width: 30px; + height: 30px; + background-color: yellow; + border: 2px solid white; + border-radius: 50%; + margin-right: 10px; +} From f8a85009f68b1ed0cb1ac1bfed3a4c5c498a1231 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:18:18 +0200 Subject: [PATCH 10/33] Update Update nummers --- PacMan/jscrpt.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index a4c35a2e8a..bd126c87b8 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -7,7 +7,7 @@ document.addEventListener('DOMContentLoaded', () => { const rows = 20; // Number of rows in the grid const cols = 20; // Number of columns in the grid let score = 0; // Player's score - let lives = 3; // Player's lives + let lives = 2; // Player's lives let totalPacDots = 0; // Total number of pac-dots in the game let gameOver = false; // Flag to track game over state let gameLoop; // Variable to hold game loop interval @@ -155,7 +155,7 @@ document.addEventListener('DOMContentLoaded', () => { }); // Initialize lives using a for loop - for (let lives = 3; lives > 0; lives--) { + for (let lives = 2; lives > 0; lives--) { } // Function to end the game From e07e6e526da456a594f776d05f3e7818b6f6f516 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:21:53 +0200 Subject: [PATCH 11/33] Update --- PacMan/jscrpt.js | 4 ++-- PacMan/style.css | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index bd126c87b8..a4c35a2e8a 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -7,7 +7,7 @@ document.addEventListener('DOMContentLoaded', () => { const rows = 20; // Number of rows in the grid const cols = 20; // Number of columns in the grid let score = 0; // Player's score - let lives = 2; // Player's lives + let lives = 3; // Player's lives let totalPacDots = 0; // Total number of pac-dots in the game let gameOver = false; // Flag to track game over state let gameLoop; // Variable to hold game loop interval @@ -155,7 +155,7 @@ document.addEventListener('DOMContentLoaded', () => { }); // Initialize lives using a for loop - for (let lives = 2; lives > 0; lives--) { + for (let lives = 3; lives > 0; lives--) { } // Function to end the game diff --git a/PacMan/style.css b/PacMan/style.css index 2c9c3bcd2a..ffd4c27008 100644 --- a/PacMan/style.css +++ b/PacMan/style.css @@ -90,7 +90,7 @@ body { --ghost-color: green; } -/* CSS voor het weergeven van levens */ +/*Lives*/ #livesContainer { margin-top: 20px; font-size: 20px; From f8ad9f5ae72d23a3a2d9ab0a031f096bb9e6e166 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:24:20 +0200 Subject: [PATCH 12/33] Fix amount of lives Amount of lives fixed --- PacMan/style.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PacMan/style.css b/PacMan/style.css index ffd4c27008..6e562ce6c1 100644 --- a/PacMan/style.css +++ b/PacMan/style.css @@ -107,3 +107,8 @@ body { border-radius: 50%; margin-right: 10px; } + +/*Hide life*/ +.life.hidden { + display: none; +} From f56622aea2093ed2bf7534cb9ce261a14665d3e3 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:41:40 +0200 Subject: [PATCH 13/33] Fix life icons -They appeared weird at first --- PacMan/jscrpt.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index a4c35a2e8a..3526efb0b3 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -281,7 +281,7 @@ document.addEventListener('DOMContentLoaded', () => { console.log('Updating lives display. Current lives:', lives); for (let i = 0; i < lifeIcons.length; i++) { if (i < lives) { - lifeIcons[i].style.display = 'inline'; // Display the life icon + lifeIcons[i].style.display = 'inline-block'; // Display the life icon } else { lifeIcons[i].style.display = 'none'; // Hide the life icon } From af4485043fe5cd33f94a732a5aa423f3ea9359eb Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:56:07 +0200 Subject: [PATCH 14/33] Update timing --- PacMan/jscrpt.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PacMan/jscrpt.js b/PacMan/jscrpt.js index 3526efb0b3..d1641044d8 100644 --- a/PacMan/jscrpt.js +++ b/PacMan/jscrpt.js @@ -311,6 +311,6 @@ document.addEventListener('DOMContentLoaded', () => { }; // Check for collision on Pac-Man movement - setInterval(checkCollision, 200); // Check collision every 200ms + setInterval(checkCollision, 100); // Check collision every 100ms }); From 8efa00b6f6eae5c24ae04aaefaf373dd5a04e766 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:09:15 +0200 Subject: [PATCH 15/33] Name changes -had to change names of files --- {PacMan => Pac_Man}/index.html | 2 +- PacMan/jscrpt.js => Pac_Man/script.js | 0 {PacMan => Pac_Man}/style.css | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename {PacMan => Pac_Man}/index.html (94%) rename PacMan/jscrpt.js => Pac_Man/script.js (100%) rename {PacMan => Pac_Man}/style.css (100%) diff --git a/PacMan/index.html b/Pac_Man/index.html similarity index 94% rename from PacMan/index.html rename to Pac_Man/index.html index 2a7dd4a7fc..c435db18b0 100644 --- a/PacMan/index.html +++ b/Pac_Man/index.html @@ -22,7 +22,7 @@ - + diff --git a/PacMan/jscrpt.js b/Pac_Man/script.js similarity index 100% rename from PacMan/jscrpt.js rename to Pac_Man/script.js diff --git a/PacMan/style.css b/Pac_Man/style.css similarity index 100% rename from PacMan/style.css rename to Pac_Man/style.css From a62c809c122b55bd104ed68238ab0014c5b4b9d5 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:11:14 +0200 Subject: [PATCH 16/33] Actual total score -Actual total score needed to win --- Pac_Man/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pac_Man/script.js b/Pac_Man/script.js index d1641044d8..25d4184bde 100644 --- a/Pac_Man/script.js +++ b/Pac_Man/script.js @@ -129,7 +129,7 @@ document.addEventListener('DOMContentLoaded', () => { // Function to check for win condition const checkForWin = () => { - if (score === 300) { // Total score won + if (score === 2030) { // Total score won gameOver = true; // Set game over flag clearInterval(gameLoop); // Stop the game loop From 2824db3c0346ebf58fbd80c6f593607672b16e01 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:23:29 +0200 Subject: [PATCH 17/33] README Added README --- Pac_Man/Img/Screenshot.png | Bin 0 -> 25980 bytes Pac_Man/README.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 Pac_Man/Img/Screenshot.png create mode 100644 Pac_Man/README.md diff --git a/Pac_Man/Img/Screenshot.png b/Pac_Man/Img/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb1a59e204d6ef2f316bc6dd8a0daff44b7a01d GIT binary patch literal 25980 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 Date: Sun, 16 Jun 2024 00:25:02 +0200 Subject: [PATCH 18/33] Update README.md --- Pac_Man/README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Pac_Man/README.md b/Pac_Man/README.md index 8bfdae4119..3a0c2f4884 100644 --- a/Pac_Man/README.md +++ b/Pac_Man/README.md @@ -1,7 +1,3 @@ -Sure, here's a README for your Pac-Man game using the provided template: - ---- - # Pac-Man ## Description 📃 @@ -28,7 +24,7 @@ This is a classic Pac-Man game built using HTML, CSS, and JavaScript. The object 6. **Win the Game**: Collect all pac-dots to win the game. A message will display "Congratulations! You won!". ## Screenshots 📸 -![Pac-Man Game Screenshot](path-to-screenshot.png) +![Img/Screenshot.png](img/screenshot.png) ## Working Video 📹 [Link to video demonstration](path-to-video.mp4) \ No newline at end of file From 20b61cd7158bc8f8e08c8c190b287ec8b5aa6ac5 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:37:33 +0200 Subject: [PATCH 19/33] Update README --- Pac_Man/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pac_Man/README.md b/Pac_Man/README.md index 3a0c2f4884..c9c55bdd1e 100644 --- a/Pac_Man/README.md +++ b/Pac_Man/README.md @@ -27,4 +27,4 @@ This is a classic Pac-Man game built using HTML, CSS, and JavaScript. The object ![Img/Screenshot.png](img/screenshot.png) ## Working Video 📹 -[Link to video demonstration](path-to-video.mp4) \ No newline at end of file +https://drive.google.com/file/d/1MWgfO_Zyn9sKfSN3k9mc2Jf1HUaGX6ZJ/view?usp=sharing \ No newline at end of file From 00cd06892d40339a2da916bc82416b0504b3bb64 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:27:41 +0200 Subject: [PATCH 20/33] Aanpassing map Aanpassing map screenshot --- Pac_Man/{Img => assets/images}/Screenshot.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename Pac_Man/{Img => assets/images}/Screenshot.png (100%) diff --git a/Pac_Man/Img/Screenshot.png b/Pac_Man/assets/images/Screenshot.png similarity index 100% rename from Pac_Man/Img/Screenshot.png rename to Pac_Man/assets/images/Screenshot.png From d520bb2a4cc7fb0f0d54deafc22f86c893f8c01f Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:37:23 +0200 Subject: [PATCH 21/33] Video removed -Video doesnt't add much and it's not required --- Pac_Man/README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Pac_Man/README.md b/Pac_Man/README.md index c9c55bdd1e..0aee32b45c 100644 --- a/Pac_Man/README.md +++ b/Pac_Man/README.md @@ -24,7 +24,4 @@ This is a classic Pac-Man game built using HTML, CSS, and JavaScript. The object 6. **Win the Game**: Collect all pac-dots to win the game. A message will display "Congratulations! You won!". ## Screenshots 📸 -![Img/Screenshot.png](img/screenshot.png) - -## Working Video 📹 -https://drive.google.com/file/d/1MWgfO_Zyn9sKfSN3k9mc2Jf1HUaGX6ZJ/view?usp=sharing \ No newline at end of file +![assets/images/Screenshot.png](assets/images/Screenshot.png) From 3914b813e086d8dad505bf9625888ec8dec998f8 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:45:09 +0200 Subject: [PATCH 22/33] Folder name change --- Pac_Man/{assets/images => Img}/Screenshot.png | Bin assets/images/Pac_Man_Thumbnail.png | Bin 0 -> 25980 bytes 2 files changed, 0 insertions(+), 0 deletions(-) rename Pac_Man/{assets/images => Img}/Screenshot.png (100%) create mode 100644 assets/images/Pac_Man_Thumbnail.png diff --git a/Pac_Man/assets/images/Screenshot.png b/Pac_Man/Img/Screenshot.png similarity index 100% rename from Pac_Man/assets/images/Screenshot.png rename to Pac_Man/Img/Screenshot.png diff --git a/assets/images/Pac_Man_Thumbnail.png b/assets/images/Pac_Man_Thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb1a59e204d6ef2f316bc6dd8a0daff44b7a01d GIT binary patch literal 25980 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 Date: Sun, 16 Jun 2024 09:53:21 +0200 Subject: [PATCH 23/33] Moved maps -Moved game to the right map --- {Pac_Man => Games/Pac_Man_Game}/Img/Screenshot.png | Bin {Pac_Man => Games/Pac_Man_Game}/README.md | 2 +- {Pac_Man => Games/Pac_Man_Game}/index.html | 0 {Pac_Man => Games/Pac_Man_Game}/script.js | 0 {Pac_Man => Games/Pac_Man_Game}/style.css | 0 README.md | 2 +- 6 files changed, 2 insertions(+), 2 deletions(-) rename {Pac_Man => Games/Pac_Man_Game}/Img/Screenshot.png (100%) rename {Pac_Man => Games/Pac_Man_Game}/README.md (96%) rename {Pac_Man => Games/Pac_Man_Game}/index.html (100%) rename {Pac_Man => Games/Pac_Man_Game}/script.js (100%) rename {Pac_Man => Games/Pac_Man_Game}/style.css (100%) diff --git a/Pac_Man/Img/Screenshot.png b/Games/Pac_Man_Game/Img/Screenshot.png similarity index 100% rename from Pac_Man/Img/Screenshot.png rename to Games/Pac_Man_Game/Img/Screenshot.png diff --git a/Pac_Man/README.md b/Games/Pac_Man_Game/README.md similarity index 96% rename from Pac_Man/README.md rename to Games/Pac_Man_Game/README.md index 0aee32b45c..9a50d70455 100644 --- a/Pac_Man/README.md +++ b/Games/Pac_Man_Game/README.md @@ -24,4 +24,4 @@ This is a classic Pac-Man game built using HTML, CSS, and JavaScript. The object 6. **Win the Game**: Collect all pac-dots to win the game. A message will display "Congratulations! You won!". ## Screenshots 📸 -![assets/images/Screenshot.png](assets/images/Screenshot.png) +![Img/Screenshot.png](Img/Screenshot.png) diff --git a/Pac_Man/index.html b/Games/Pac_Man_Game/index.html similarity index 100% rename from Pac_Man/index.html rename to Games/Pac_Man_Game/index.html diff --git a/Pac_Man/script.js b/Games/Pac_Man_Game/script.js similarity index 100% rename from Pac_Man/script.js rename to Games/Pac_Man_Game/script.js diff --git a/Pac_Man/style.css b/Games/Pac_Man_Game/style.css similarity index 100% rename from Pac_Man/style.css rename to Games/Pac_Man_Game/style.css diff --git a/README.md b/README.md index a2501fa3fc..41e0f82d77 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ This repository also provides one such platforms where contributers come over an | Game | Game | Game | Game | Game | -| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | [Pac_Man]() | [Master Typing](https://github.com/kunjgit/GameZone/tree/main/Games/Master_Typing) | [Treasure Hunt](https://github.com/Antiquely3059/GameZone/tree/main/Games/Treasure%20Hunt) | [Virtual Pet](https://github.com/Antiquely3059/GameZone/tree/main/Games/Virtual_Pet) | [MazeRunner](https://github.com/kunjgit/GameZone/tree/main/Games/MazeRunner) | [Ping_Pong_Singleplayer](https://github.com/kunjgit/GameZone/tree/main/Games/Ping_Pong_Singleplayer) | | | [Tilting Maze](https://github.com/kunjgit/GameZone/tree/main/Games/Tilting_Maze) | [Simon Game Challenge](https://github.com/kunjgit/GameZone/tree/main/Games/Simon_Game_Challenge) | [Snake Game](https://github.com/kunjgit/GameZone/tree/main/Games/Snake_Game) | [Dino Runner Game](https://github.com/kunjgit/GameZone/tree/main/Games/Dino_Runner_Game) | | [Whack a Mole](https://github.com/kunjgit/GameZone/tree/main/Games/Whack_a_Mole) | [Doraemon Jump](https://github.com/kunjgit/GameZone/tree/main/Games/Doraemon_Jump) | [Black Jack](https://github.com/kunjgit/GameZone/tree/main/Games/Black_Jack) | [Memory Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Game) | [Word Guessing Game](https://github.com/kunjgit/GameZone/tree/main/Games/Word_Guessing_Game) | From 772df1c47230ea3f1282012439ddfd372084dfb2 Mon Sep 17 00:00:00 2001 From: aamira0 <150680980+aamira0@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:57:54 +0200 Subject: [PATCH 24/33] Added link Added link to main README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41e0f82d77..446f537cf8 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ This repository also provides one such platforms where contributers come over an | Game | Game | Game | Game | Game | -| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | [Pac_Man]() +| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | [Pac_Man_Game](https://github.com/aamira0/GameZone/tree/main/Games/Pac_Man_Game) | [Master Typing](https://github.com/kunjgit/GameZone/tree/main/Games/Master_Typing) | [Treasure Hunt](https://github.com/Antiquely3059/GameZone/tree/main/Games/Treasure%20Hunt) | [Virtual Pet](https://github.com/Antiquely3059/GameZone/tree/main/Games/Virtual_Pet) | [MazeRunner](https://github.com/kunjgit/GameZone/tree/main/Games/MazeRunner) | [Ping_Pong_Singleplayer](https://github.com/kunjgit/GameZone/tree/main/Games/Ping_Pong_Singleplayer) | | | [Tilting Maze](https://github.com/kunjgit/GameZone/tree/main/Games/Tilting_Maze) | [Simon Game Challenge](https://github.com/kunjgit/GameZone/tree/main/Games/Simon_Game_Challenge) | [Snake Game](https://github.com/kunjgit/GameZone/tree/main/Games/Snake_Game) | [Dino Runner Game](https://github.com/kunjgit/GameZone/tree/main/Games/Dino_Runner_Game) | | [Whack a Mole](https://github.com/kunjgit/GameZone/tree/main/Games/Whack_a_Mole) | [Doraemon Jump](https://github.com/kunjgit/GameZone/tree/main/Games/Doraemon_Jump) | [Black Jack](https://github.com/kunjgit/GameZone/tree/main/Games/Black_Jack) | [Memory Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Game) | [Word Guessing Game](https://github.com/kunjgit/GameZone/tree/main/Games/Word_Guessing_Game) | From 72e6e28f2e57dae12b78561b52d48488745eae0a Mon Sep 17 00:00:00 2001 From: somilyadav7 Date: Mon, 17 Jun 2024 20:19:04 +0530 Subject: [PATCH 25/33] added falling words game --- Games/Falling_Words/README.md | 50 +++ Games/Falling_Words/Screenshots/game.png | Bin 0 -> 23569 bytes Games/Falling_Words/Screenshots/game1.png | Bin 0 -> 12132 bytes Games/Falling_Words/Screenshots/game_over.png | Bin 0 -> 20809 bytes Games/Falling_Words/Screenshots/home.png | Bin 0 -> 26414 bytes Games/Falling_Words/Screenshots/how.png | Bin 0 -> 46815 bytes Games/Falling_Words/app.js | 289 ++++++++++++++++++ Games/Falling_Words/css/game.css | 88 ++++++ Games/Falling_Words/css/global.css | 48 +++ Games/Falling_Words/css/how.css | 40 +++ Games/Falling_Words/css/index.css | 44 +++ Games/Falling_Words/favicon.ico | Bin 0 -> 1150 bytes Games/Falling_Words/font/karcade.ttf | Bin 0 -> 56908 bytes Games/Falling_Words/game.html | 87 ++++++ Games/Falling_Words/how.html | 81 +++++ Games/Falling_Words/index.html | 105 +++++++ Games/Falling_Words/sound-buttons.js | 24 ++ Games/Falling_Words/sound/gameover.mp3 | Bin 0 -> 5201901 bytes Games/Falling_Words/sound/homesound.mp3 | Bin 0 -> 4314477 bytes Games/Falling_Words/sound/menusound.mp3 | Bin 0 -> 4219 bytes Games/Falling_Words/sound/not-point.mp3 | Bin 0 -> 6955 bytes Games/Falling_Words/sound/point.mp3 | Bin 0 -> 10219 bytes Games/Falling_Words/sound/startgame.mp3 | Bin 0 -> 1452909 bytes 23 files changed, 856 insertions(+) create mode 100644 Games/Falling_Words/README.md create mode 100644 Games/Falling_Words/Screenshots/game.png create mode 100644 Games/Falling_Words/Screenshots/game1.png create mode 100644 Games/Falling_Words/Screenshots/game_over.png create mode 100644 Games/Falling_Words/Screenshots/home.png create mode 100644 Games/Falling_Words/Screenshots/how.png create mode 100644 Games/Falling_Words/app.js create mode 100644 Games/Falling_Words/css/game.css create mode 100644 Games/Falling_Words/css/global.css create mode 100644 Games/Falling_Words/css/how.css create mode 100644 Games/Falling_Words/css/index.css create mode 100644 Games/Falling_Words/favicon.ico create mode 100644 Games/Falling_Words/font/karcade.ttf create mode 100644 Games/Falling_Words/game.html create mode 100644 Games/Falling_Words/how.html create mode 100644 Games/Falling_Words/index.html create mode 100644 Games/Falling_Words/sound-buttons.js create mode 100644 Games/Falling_Words/sound/gameover.mp3 create mode 100644 Games/Falling_Words/sound/homesound.mp3 create mode 100644 Games/Falling_Words/sound/menusound.mp3 create mode 100644 Games/Falling_Words/sound/not-point.mp3 create mode 100644 Games/Falling_Words/sound/point.mp3 create mode 100644 Games/Falling_Words/sound/startgame.mp3 diff --git a/Games/Falling_Words/README.md b/Games/Falling_Words/README.md new file mode 100644 index 0000000000..98b4913c5e --- /dev/null +++ b/Games/Falling_Words/README.md @@ -0,0 +1,50 @@ +# Falling Words + +
+ +

+Type the word, as fast as you can !!, before it reaches the bottom of the blurred square. +If it touches the cyan line, you lose. +

+ +## Game difficulties + +It has 3 difficulties: + +* Easy = 1 word per 3 seconds +* Medium = 1 word per 2 seconds +* Hard = 1 word per 1 second + +## Tech used + +* HTML +* CSS +* Javascript +* [Bootstrap](https://getbootstrap.com/) +* [Textcraft generator (logo)](https://textcraft.net/style/ninjagofans/k-arcade) +* [Favicon generator](https://www.favicon-generator.org/) + +## Music + +* Start Game - [Demon Slayer: Kimetsu no Yaiba OP - Gurenge [8-bit; VRC6]](https://www.youtube.com/watch?v=Y67vJWYvLBg&t=5s) +* Home - [Homura/Demon Slayer: Kimetsu no Yaiba 8-bit](https://www.youtube.com/watch?v=LRrGjhpNWoo) +* Gameover - [Kamado Tanjiro no Uta/Demon Slayer: Kimetsu no Yaiba 8-bit](https://www.youtube.com/watch?v=y6ZT7SrmfUs&t=38s) + +## Screenshots + +### Home + +![Home](Screenshots/home.png) + +### How to play + +![How to play](Screenshots/how.png) + +### Game + +![Game](Screenshots/game.png) +![Game1](Screenshots/game1.png) + +### GameOver + +![GameOver](Screenshots/game_over.png) diff --git a/Games/Falling_Words/Screenshots/game.png b/Games/Falling_Words/Screenshots/game.png new file mode 100644 index 0000000000000000000000000000000000000000..becc297532c5c8f773771a24ee54e6a0d8711981 GIT binary patch literal 23569 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 afq(Whz4r-=AE<5smBgN|elF{r5}E-2nbjKr literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/Screenshots/game1.png b/Games/Falling_Words/Screenshots/game1.png new file mode 100644 index 0000000000000000000000000000000000000000..92a454f6d1ea060079d2f306861a50fdee1e66a5 GIT binary patch literal 12132 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 literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/Screenshots/home.png b/Games/Falling_Words/Screenshots/home.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd5b90c315d365feb5ed13fc33058a2649eed8b GIT binary patch literal 26414 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 b+^A5@Q7rOOKe1l`L58J;-R|O@M^FC_Cdl!` literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/Screenshots/how.png b/Games/Falling_Words/Screenshots/how.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6c8d2675578aa10dc68d69982b29c24cbb2584 GIT binary patch literal 46815 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

W`+N(9 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 Y-ooN$fxU3lFDo^^X?6o|aR1qV0fD9m6aWAK literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/app.js b/Games/Falling_Words/app.js new file mode 100644 index 0000000000..6242377ab7 --- /dev/null +++ b/Games/Falling_Words/app.js @@ -0,0 +1,289 @@ +// HTTP GET LEVEL FROM index.html +const params = new URLSearchParams(window.location.search); +const LEVEL = params.get('lvl'); + +// DOM ELEMENTS +const buttonElementID = document.getElementById('StartButton'); +const gameContentID = document.getElementById('GameContent'); +const gameContentClass = document.getElementsByClassName('game-content'); +const inputElementID = document.getElementById('InputWord'); +const scoreElementID = document.getElementById('Score'); +const scoreElementClass = document.getElementsByClassName('score'); +const levelElementID = document.getElementById('Level'); + +// VARIABLES +const currentLevel = LEVEL; +const gameWidth = gameContentID.clientWidth; +const gameHeight = gameContentID.clientHeight; +let score = 0; +let gameOver = false; +let arrWords = []; +let arrWordsDiv = []; +let topVal = 0; + +// SOUNDS +const startGameSound = document.getElementById('StartGameSound'); +const gameoverSound = document.getElementById('GameoverSound'); +const pointSound = document.getElementById('PointSound'); +const notPointSound = document.getElementById('NotPointSound'); + +// DEFAULT VOLUME (was too high) +startGameSound.style.zIndex = 1; +startGameSound.volume = 0.5; +gameoverSound.volume = 0.5; +pointSound.volume = 0.2; + +// DICTIONARY WORDS +const DICTIONARY = [ + 'school', + 'college', + 'btc', + 'elon', + 'musk', + 'courses', + 'internet', + 'patience', + 'argentina', + 'motivation', + 'tech', + 'info', + 'send', + 'mate', + 'reactjs', + 'game', + 'brusca', + 'graphic', + 'copper', + 'boca', + 'lie', + 'case', + 'expand', + 'absence', + 'football', + 'native', + 'demon', + 'thread', + 'award', + 'tycoon', + 'riquelme', + 'still', + 'empirical', + 'doll', + 'java', + 'ackerman', + 'dinner', + 'register', + 'proof', + 'script', + 'wrist', + 'sulphur', + 'selection', + 'slam', + 'grandmother', + 'assertive', + 'eaux', + 'javascript', + 'admiration', + 'recognize', + 'roll', + 'bank', + 'reactor', + 'gradient', + 'ribbon', + 'slayer', + 'pleasant', + 'path', + 'draft', + 'polish', + 'art', + 'hook', + 'messi', + 'flow', + 'operational', + 'transaction', + 'physics', + 'rally', + 'fold', + 'housewife', + 'suspicion', + 'craft', + 'objective', + 'grass', + 'reckless', + 'manual', + 'test', + 'switch', + 'diegote', + 'silver', + 'take', + 'president', + 'constituency', + 'basis', + 'cluster', + 'psychology', + 'cat', + 'minimize', + 'hide', + 'chord', + 'brilliance', + 'official', + 'condition', + 'guideline', + 'apology', + 'general', + 'sock', + 'hunting', + 'kinship', + 'change', + 'departure', + 'mile', + 'ancestor', + 'diego', + 'cheat', + 'taxi', + 'tight', + 'moment', + 'dimension', + 'family', + 'vegan', + 'projection', + 'demonstration', + 'pony', + 'standard', + 'appendix', + 'reluctance', + 'gian', + 'davinci', + 'system', + 'analyst', + 'levi', +]; + +// GAME START +function init() { + showLevel(); + setInterval(() => { + if (!gameOver) { + drawWord(); + } + }, currentLevel); + updateWordPosition(); +} + +// CREATE WORD, STORES IT IN AN ARRAY & GET POSITION WHERE IT STARTS TO FALLLS +function drawWord() { + const word = generateRandomWord(DICTIONARY); + arrWords.push(word); + let wordDiv = document.createElement('div'); + wordDiv.innerHTML = `

${word}

`; + wordDiv.classList.add('word'); + wordDiv.style.top = '-2px'; + wordDiv.style.zIndex = '1'; + wordDiv.style.left = (Math.random() * (gameWidth - 150)).toString() + 'px'; + arrWordsDiv.push(wordDiv); + gameContentClass[0].appendChild(wordDiv); +} + +// GET RANDOM WORD FROM DICTIONARY +function generateRandomWord(words) { + return words[Math.floor(Math.random() * words.length)]; +} + +// GET VALUE FROM INPUT +function getWord() { + let inputValue = inputElementID.value.toLowerCase(); + inputElementID.value = ''; + if (arrWords.includes(inputValue)) { + updateScore(); + let indexWord = arrWords.indexOf(inputValue); + let wordDivIndex = arrWordsDiv[indexWord]; + arrWords.splice(indexWord, 1); + arrWordsDiv.splice(indexWord, 1); + wordDivIndex.parentNode.removeChild(wordDivIndex); + playSound(pointSound, 0, notPointSound); + } else { + playSound(notPointSound, 0, pointSound); + } +} + +// FALLING WORD LOGIC + GAMEOVER +function updateWordPosition() { + setInterval(() => { + if (!gameOver) { + let wordText = document.getElementsByClassName('word'); + for (let i = 0; i < arrWords.length; i++) { + if (parseInt(topVal) + 15 > gameHeight) { + gameOver = true; + gameContentID.innerHTML = modalGameOver(); + playSound(gameoverSound, 8, startGameSound); + gameoverSound.style.zIndex = 1; + inputElementID.setAttribute('disabled', true); + } else { + topVal = wordText[i].style.top; + topVal.replace('px', ''); + wordText[i].style.top = (parseInt(topVal) + 1).toString() + 'px'; + } + } + } + }, 20); +} + +// UPDATE SCORE +function updateScore() { + score += 10; + scoreElementID.innerHTML = `

Score ${score}

`; +} + +// HELPERS +// PLAY SOUND +function playSound(sound, time, stopSound) { + let playPromise = sound.play(); + + if (playPromise !== undefined) { + playPromise + .then(() => { + stopSound.pause(); + sound.pause(); + stopSound.currentTime = 0; + }) + .then(() => { + sound.currentTime = time; + }) + .then(() => { + sound.play(); + }); + } +} + +// SHOWS CURRENT PLAYING LEVEL +function showLevel() { + if (LEVEL === '3000') { + levelElementID.innerHTML = `

Level: EASY

`; + } else if (LEVEL === '2000') { + levelElementID.innerHTML = `

Level: MEDIUM

`; + } else { + levelElementID.innerHTML = `

Level: HARD

`; + } +} + +// GAMEOVER MODAL +function modalGameOver() { + return ` + + `; +} + +init(); diff --git a/Games/Falling_Words/css/game.css b/Games/Falling_Words/css/game.css new file mode 100644 index 0000000000..5db4a58881 --- /dev/null +++ b/Games/Falling_Words/css/game.css @@ -0,0 +1,88 @@ +h2 { + margin-bottom: 1.5rem; +} + +h6 { + margin: 0 !important; + padding: 0.5rem 0 !important; +} + +.wrapper { + max-width: 600px; + margin-top: 40px; + margin-left: auto; + margin-right: auto; + text-align: center; + padding: 2em 2em; + color: white; + background-color: #343a40; /* Dark background color */ +} + +.container-data { + display: flex; + justify-content: space-around; + padding: 5px 0; + background-color: rgba(0, 0, 0, 0.8); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); +} + +#GameContent { + position: relative; + margin: 0 auto 0 auto; + height: 600px; + width: 100%; + border-bottom: 5px solid rgb(0, 217, 255); + background-color: rgba(0, 0, 0, 0.5); +} + +.word { + position: absolute; + background-color: red; + padding: 0 10; + width: auto; + height: auto; + text-align: center; +} + +.word p { + position: relative; + margin: 0; +} + +.modal-gameover { + display: flex; + flex-direction: column; + padding: 40px 30px; + background-color: rgba(0, 0, 0, 0.8); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); +} + +input { + border-radius: 0 !important; + border: none !important; +} + +.btn-modal { + transition: all 0.5s; + margin: 0.3em 0; +} + +.btn-modal a { + color: black; +} + +.btn-modal:hover, +.btn-modal a:hover { + background-color: rgb(153, 44, 255); + border-radius: 0; + color: rgb(238, 255, 0) !important; + transform: translateY(-4px); +} + +audio { + position: absolute; + top: 2%; + right: 2%; +} diff --git a/Games/Falling_Words/css/global.css b/Games/Falling_Words/css/global.css new file mode 100644 index 0000000000..a5021b82db --- /dev/null +++ b/Games/Falling_Words/css/global.css @@ -0,0 +1,48 @@ +@font-face { + font-family: 'karcade'; + src: url('../font/karcade.ttf'); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +body { + font-family: 'karcade'; + background-color: #1a1a1a; /* Dark background color */ + min-height: min-content; + height: 100vh; + width: 100vw; +} + +input { + margin-top: 50px; +} + +p { + margin-bottom: 0; +} + +/*** Navbar ***/ + +.navbar { + padding-top: 30px; +} + +.nav-link, +.navbar-brand { + color: white; +} + +.nav-link { + transition: all 0.5s; +} + +.nav-link:hover { + background-color: rgba(192, 125, 255, 0.63); + color: rgb(238, 255, 0) !important; + transform: translateY(-4px); +} diff --git a/Games/Falling_Words/css/how.css b/Games/Falling_Words/css/how.css new file mode 100644 index 0000000000..9bf3bdb936 --- /dev/null +++ b/Games/Falling_Words/css/how.css @@ -0,0 +1,40 @@ +.main { + margin-top: 80px; + background-color: rgba(0, 0, 0, 0.8); + padding: 100px 0; + color: white; +} + +h2 { + background: -webkit-linear-gradient(rgb(217, 255, 1), rgb(5, 255, 255)); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +h3 { + background: -webkit-linear-gradient(rgb(238, 255, 0), rgb(143, 5, 255)); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +ul { + list-style: none; +} + +li:first-of-type { + color: greenyellow; +} + +.cyan { + color: cyan; +} + +.lose { + color: red; +} + +.fast { + color: coral; +} diff --git a/Games/Falling_Words/css/index.css b/Games/Falling_Words/css/index.css new file mode 100644 index 0000000000..7f608c00fa --- /dev/null +++ b/Games/Falling_Words/css/index.css @@ -0,0 +1,44 @@ +/*** Main Container ***/ + +.main { + margin-top: 40px; + margin-bottom: 40px; + background-color: rgba(0, 0, 0, 0.6); + padding: 30px 0; +} + +/*** Buttons ***/ +/*** HOW TO PLAY, EASY, MEDIUM, HARD, CREDITS ***/ +.buttons-container { + margin: 30px 0; +} + +.btn-index { + transition: all 0.5s; + margin: 0.3em 0; +} + +.btn-index:hover, +.btn-index a:hover { + background-color: rgb(153, 44, 255); + border-radius: 0; + color: rgb(238, 255, 0) !important; + transform: translateY(-4px); +} + +.btn-index a { + color: black; +} + +/*** AUDIO ***/ +#HomeSound { + position: absolute; + top: 2%; + right: 2%; +} + +/*** Buttons Text ***/ +h2 { + margin: 0 !important; + padding: 0.5rem 0 !important; +} \ No newline at end of file diff --git a/Games/Falling_Words/favicon.ico b/Games/Falling_Words/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e08a723273045e453d2153e1209e3ed422edbdb7 GIT binary patch literal 1150 zcmeH{%}bPV5XWaBEojqa4?=Y5BJ@{uNC-kKL#-@5bh03&z|&p=p%>6tT=&q$4vSca zZc(83_Si)*5LaE-)pg$tUD16VKlALiu6na;zh$0zzBBWk`TpjC6>;(Nc!cM5d3Hgh zO+;>Bgosq*I1zH*%T;qQ5B-1sc>|?NMT>MP;>%d$spkk(IuAX6d_=&FbLFiuRD3!MngxDClT3 zsvp+j!$88cAwri$-n3R Sv-GuDw=lzs*1!J)=k-U2kCbQt literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/font/karcade.ttf b/Games/Falling_Words/font/karcade.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d1df85235c97923dd54e9234999fe36452e309ba GIT binary patch literal 56908 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 Gf&PDRo=4yS literal 0 HcmV?d00001 diff --git a/Games/Falling_Words/game.html b/Games/Falling_Words/game.html new file mode 100644 index 0000000000..df8575426c --- /dev/null +++ b/Games/Falling_Words/game.html @@ -0,0 +1,87 @@ + + + + + Falling Words + + + + + + + + + +
+
+
Score: 0
+
Level:
+
+ +
+ +
+ + +
+
+ + + + + + + +