diff --git a/.github/CONTRIBUTING_GUIDELINE.md b/.github/CONTRIBUTING_GUIDELINE.md index 10fece0de8..86cd10f12e 100644 --- a/.github/CONTRIBUTING_GUIDELINE.md +++ b/.github/CONTRIBUTING_GUIDELINE.md @@ -24,6 +24,43 @@ in case you are stuck:
+### Alternatively contribute using GitHub Desktop + +1. **Open GitHub Desktop:** + Launch GitHub Desktop and log in to your GitHub account if you haven't already. + +2. **Clone the Repository:** + - If you haven't cloned the GameZone repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository." + - Choose the GameZone repository from the list of repositories on GitHub and clone it to your local machine. + +3. **Switch to the Correct Branch:** + - Ensure you are on the branch that you want to submit a pull request for. + - If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch. + +4. **Make Changes:** + Make your changes to the code or files in the repository using your preferred code editor. + +5. **Commit Changes:** + - In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit. + - Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch. + +6. **Push Changes to GitHub:** + After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub. + +7. **Create a Pull Request:** + - Go to the GitHub website and navigate to your fork of the GameZone repository. + - You should see a button to "Compare & pull request" between your fork and the original repository. Click on it. + +8. **Review and Submit:** + - On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request. + - Once you're satisfied, click the "Create pull request" button to submit your pull request. + +9. **Wait for Review:** + Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the GameZone repository. + +⭐️ Support the Project +If you find this project helpful, please consider giving it a star on GitHub! Your support helps to grow the project and reach more contributors. + ## **Issue Report Process 📌** 1. Go to the project's issues. @@ -40,29 +77,58 @@ in case you are stuck: * Folder naming convention - ```Game_Name``` ex. ```Tilting_Maze```,```Rock_Paper_Scissors``` (first letter should be capital and if you need space use underscore **_** ) * files in the folder - - Main html file should be named as **index.html** , not something else like ```Tilting_Maze.html``` + - Main html file should be named as **index.html** , not something else like ```Tilting_Maze.html```(Preferred) - Game files - ```index.html``` , ```script.js``` , ```style.css```(not stictly to follow this but you should have separate file for each kind) - - It is preferred if the main html file is directly added to the main folder of you game like ```Tilting_Maze/index.html``` along with other files like *style.css*, *script.js* + - It is preferred if the main html file is directly added to the main folder of you game like ```Tilting_Maze/index.html``` along with other files like **style.css**, **script.js** - you can have other folders if you are having assets for your game - - Create```README.md``` for your Game using this [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md).Although, it is not compulsory to follow this README template ,you can use your own *README* template whichever you prefer, to explain your Game + - Create```README.md``` for your Game using this [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md).Although, it is not compulsory to follow this README template ,you can use your own *README* template whichever you prefer, to explain functionality and code of your Game * naming convention for the screenshot you will add in ```assets/images``` - Remember preview image should be in ```assets/images``` and not in main folder of Game itself. - - name of image should be same as your game name - - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image format, but don't add image format in the name itself , it is self-assigned to a image,you don't need to add it manually, otherwise it becomes ```Tilting_Maze.jpeg.jpeg``` - - There should be only one ScreenShot of the game in ```assets/images``` and that too with same name as the Game(Exactly Same). + - Name of image should be same as your Game name + - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image format, but don't add image format in the name itself , it is self-assigned to a image, you don't need to add it manually, otherwise it becomes ```Tilting_Maze.jpeg.jpeg``` + - There should be only one ScreenShot of the game in ```assets/images``` and that too with same name as the Game (Exactly Same). * Note:-All Other data except the ScreenShot of your Game, should be in it's main folder , don't add it to other folders of the project. +
+ +## Add Game to assets/js/gamesData.json + +* This is to Show your game on the main Website + - Go to the end of gamesData.json and add : + - **,** + " **No.** ":{ + "gameTitle" : " **Title** ", + "gameUrl": " **Main Folder** ", + "thumbnailUrl":" **Preview Image** " + } + - **No.**: Number for your Game , it should be the next number with respect to the file. eg: if the last no. in file at present is *625* you should put *626* at the place of **No.** + - **Title:** this is the title for your game that will be shown on the website, if your game name is ```Super_Mario_Game``` ,put Title as ```Super Mario Game``` + - **Main Folder :** This is the reference to *index.html* + - if your index.html is directly in main game folder ,put the main folder name eg: ```Super_Mario_Game``` + - if your index.html is in subfolder , give path to it + eg: ```Super_Mario_Game/public``` (assuming index.html is in public folder of Super_Mario_Game folder) + - if your main html file's name is not index.html , you need to specify the main html file also. eg:```Super_Mario_Game/mario.html``` or if in sub folder ```Super_Mario_Game/public/mario.html``` + - **Preview Image:** This is the image that will be shown as preview for your game , here you provide the name of the image that you added to **assets/images** folder, along with format type. Eg. ```Super_Mario_Game.png``` or ```Super_Mario_Game.jpg``` or with any other format. + +**Note:-** + + - Do not modify anything else in the rest of the file, you only need to add your game in the end of the file. + - Don't forget to add the comma for new entry (already give in above sample but this is a reminder as one might miss it to see in the sample) + +
## **Pull Request Process 🚀** 1. Ensure that you have self reviewed your code 😀 2. Make sure you have added the proper description for the functionality of the code -3. You have added README file in your repository . -4. You have added the thumbnail of the project into ```assets/images``` for website preview -5. Add your game screenshot in the assets folder by following the proper conversion specified over here -6. You have added your game name and link in main README.md -7. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon 🚀 +3. You have added README file in your Game folder. +4. You have added the thumbnail of the project/Game into ```assets/images``` for website preview +5. Added your game screenshot in the assets folder by following the proper conversion specified over here +6. You have added your game name and link in GameZone's README.md +7. You have Added your game to ```assets\js\gamesData.json```. +8. you have reviewed that your Game loads on the website with preview image and works when opened. +9. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon 🚀
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3c364b3fb2..20bc5bbfdb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,10 +15,11 @@ Fixes # - [ ] My changes generates no new warnings. - [ ] I have followed proper naming convention showed in [CONTRIBUTING GUIDELINE](https://github.com/kunjgit/GameZone/blob/main/.github/CONTRIBUTING_GUIDELINE.md) - [ ] I have added screenshot for website preview in assets/images -- [ ] I have added entries for my game in main README.md -- [ ] I have added README.md in my folder +- [ ] I have added entries for my game in GameZone's README.md +- [ ] I have added README.md in my Game folder - [ ] I have added working video of the game in README.md (optional) - [ ] I have specified the respective issue number for which I have requested the new game. +- [ ] I have added my Game to gamesData.json file and it is loading properly on main website as intended.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26ee5d4b1f..6f922535fc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,17 +73,21 @@ If you find this project helpful, please consider giving it a star on GitHub! Yo
## **File naming conventions 📁** -- Give unique name for your game that is not already existed +- Give unique name for your game that don't exist already. * Folder naming convention - - ```Game_Name``` ex. ```Tilting_Maze``` (first letter should be capital and if you need space use _ ) + - ```Game_Name``` ex. ```Tilting_Maze```,```Rock_Paper_Scissors``` (first letter should be capital and if you need space use underscore **_** ) * files in the folder - - ```index.html``` , ```script.js``` , ```style.css```(not stictly to follow this but you should have separate ) + - Main html file should be named as **index.html** , not something else like ```Tilting_Maze.html```(Preferred) + - Game files - ```index.html``` , ```script.js``` , ```style.css```(not stictly to follow this but you should have separate file for each kind) + - It is preferred if the main html file is directly added to the main folder of you game like ```Tilting_Maze/index.html``` along with other files like **style.css**, **script.js** - you can have other folders if you are having assets for your game - - ```README.md``` for your folder using template [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md) - - It is not compulsory to follow this README template only you can have your own + - Create```README.md``` for your Game using this [TEMPLATE](../Games/FOLDER_README_TEMPLATE.md).Although, it is not compulsory to follow this README template ,you can use your own *README* template whichever you prefer, to explain functionality and code of your Game * naming convention for the screenshot you will add in ```assets/images``` - - name of image should be same as your game name - - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image formate + - Remember preview image should be in ```assets/images``` and not in main folder of Game itself. + - Name of image should be same as your Game name + - ex. ```Tilting_Maze.jpeg``` or .jpg or .png any of the image format, but don't add image format in the name itself , it is self-assigned to a image, you don't need to add it manually, otherwise it becomes ```Tilting_Maze.jpeg.jpeg``` + - There should be only one ScreenShot of the game in ```assets/images``` and that too with same name as the Game (Exactly Same). +* Note:-All Other data except the ScreenShot of your Game, should be in it's main folder , don't add it to other folders of the project.
@@ -98,7 +102,7 @@ If you find this project helpful, please consider giving it a star on GitHub! Yo "gameUrl": " **Main Folder** ", "thumbnailUrl":" **Preview Image** " } - - **No.**: Number for your Game , it should be the next number with respect to the file. eg: it the last no. in file at present is *625* you should put *626* at the place of **No.** + - **No.**: Number for your Game , it should be the next number with respect to the file. eg: if the last no. in file at present is *625* you should put *626* at the place of **No.** - **Title:** this is the title for your game that will be shown on the website, if your game name is ```Super_Mario_Game``` ,put Title as ```Super Mario Game``` - **Main Folder :** This is the reference to *index.html* - if your index.html is directly in main game folder ,put the main folder name eg: ```Super_Mario_Game``` @@ -111,15 +115,18 @@ If you find this project helpful, please consider giving it a star on GitHub! Yo - Do not modify anything else in the rest of the file, you only need to add your game in the end of the file. - Don't forget to add the comma for new entry (already give in above sample but this is a reminder as one might miss it to see in the sample) +
## **Pull Request Process 🚀** 1. Ensure that you have self reviewed your code 😀 2. Make sure you have added the proper description for the functionality of the code -3. You have added README file in your repository . -4. You have added the thumbnail of the project into ```assets/images``` for website preview -5. Add your game screenshot in the assets folder by following the proper conversion specified over here -6. You have added your game name and link in main README.md -7. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon 🚀 +3. You have added README file in your Game folder. +4. You have added the thumbnail of the project/Game into ```assets/images``` for website preview +5. Added your game screenshot in the assets folder by following the proper conversion specified over here +6. You have added your game name and link in GameZone's README.md +7. You have Added your game to ```assets\js\gamesData.json```. +8. you have reviewed that your Game loads on the website with preview image and works when opened. +9. Submit your PR by giving the necesarry information in PR template and hang tight we will review it really soon 🚀
diff --git a/Games/Boom_Blast/asset/images/Boom_Blast_gameplay.png b/Games/Boom_Blast/asset/images/Boom_Blast_gameplay.png new file mode 100644 index 0000000000..c2a764b170 Binary files /dev/null and b/Games/Boom_Blast/asset/images/Boom_Blast_gameplay.png differ diff --git a/Games/Boom_Blast/asset/images/Boom_Blast_option.png b/Games/Boom_Blast/asset/images/Boom_Blast_option.png new file mode 100644 index 0000000000..670724faac Binary files /dev/null and b/Games/Boom_Blast/asset/images/Boom_Blast_option.png differ diff --git a/Games/Boom_Blast/asset/images/Boom_Blast_scoring.png b/Games/Boom_Blast/asset/images/Boom_Blast_scoring.png new file mode 100644 index 0000000000..eeb5e11098 Binary files /dev/null and b/Games/Boom_Blast/asset/images/Boom_Blast_scoring.png differ diff --git a/Games/Boom_Blast/asset/images/Boom_Blast_start.png b/Games/Boom_Blast/asset/images/Boom_Blast_start.png new file mode 100644 index 0000000000..06f103bd96 Binary files /dev/null and b/Games/Boom_Blast/asset/images/Boom_Blast_start.png differ diff --git a/Games/Boom_Blast/asset/images/desktop.ini b/Games/Boom_Blast/asset/images/desktop.ini new file mode 100644 index 0000000000..a649d61466 --- /dev/null +++ b/Games/Boom_Blast/asset/images/desktop.ini @@ -0,0 +1,5 @@ +[LocalizedFileNames] +Screenshot 2024-07-23 101337.png=@Screenshot 2024-07-23 101337,0 +Screenshot 2024-07-23 101316.png=@Screenshot 2024-07-23 101316,0 +Screenshot 2024-07-23 101249.png=@Screenshot 2024-07-23 101249,0 +Screenshot 2024-07-23 101237.png=@Screenshot 2024-07-23 101237,0 diff --git a/Games/Boom_Blast/index.html b/Games/Boom_Blast/index.html new file mode 100644 index 0000000000..890dcb7da5 --- /dev/null +++ b/Games/Boom_Blast/index.html @@ -0,0 +1,27 @@ + + + + + + BOOM BLAST + + + +
BOOM BLAST
+
Score: 0
+
Time: 30s
+
+
+
+
+ + +
+ + + \ No newline at end of file diff --git a/Games/Boom_Blast/readme.md b/Games/Boom_Blast/readme.md new file mode 100644 index 0000000000..8a3649cc7b --- /dev/null +++ b/Games/Boom_Blast/readme.md @@ -0,0 +1,62 @@ +# BOOM BLAST + +BOOM BLAST is a fun and colorful browser-based game where players click on balloons to score points before time runs out. + +## Table of Contents + +- [Features](#features) +- [Installation](#installation) +- [How to Play](#how-to-play) +- [Game Mechanics](#game-mechanics) +- [Customization](#customization) +- [Technologies Used](#technologies-used) + +## Features + +- Vibrant, dynamic background +- Colorful balloons with gradient effects +- Customizable game duration +- Real-time score and timer display +- Responsive design + +## Installation + +1. Clone this repository . +```bash + clone git https://github.com/kunjgit/GameZone/tree/main/Games/Boom_Blast +``` +2. Open the `index.html` file in a web browser to start the game. + +## How to Play + +1. Open the game in a web browser. +2. Select the desired game duration from the dropdown menu. +3. Click the "Start Game" button to begin. +4. Click on the balloons as they appear to score points. +5. Try to click as many balloons as possible before time runs out. +6. When the game ends, your final score will be displayed. +7. Click "Start Game" again to play another round. + +## Game Mechanics + +- Balloons appear randomly within the game area every second. +- Each balloon has a random size and color gradient. +- Clicking a balloon adds 1 point to your score and removes the balloon. +- Balloons automatically disappear after 2 seconds if not clicked. +- The game ends when the timer reaches zero. + +## Customization + +You can customize the game by modifying the following: + +- Game duration options in the HTML file +- Colors and animations in the CSS file +- Balloon spawn rate and game logic in the JavaScript file + +## Technologies Used + +- HTML5 +- CSS3 +- JavaScript (ES6+) + +Feel free to fork this project and customize it to your liking. Enjoy playing BOOM BLAST! \ No newline at end of file diff --git a/Games/Boom_Blast/script.js b/Games/Boom_Blast/script.js new file mode 100644 index 0000000000..cebdc588bc --- /dev/null +++ b/Games/Boom_Blast/script.js @@ -0,0 +1,98 @@ +const gameArea = document.getElementById('game-area'); +const startButton = document.getElementById('start-button'); +const scoreElement = document.getElementById('score'); +const timerElement = document.getElementById('timer'); +const gameOverElement = document.getElementById('game-over'); +const timeSelect = document.getElementById('time-select'); + +let score = 0; +let timeLeft = 30; +let gameInterval; +let balloonInterval; + +startButton.addEventListener('click', startGame); + +function startGame() { + score = 0; + timeLeft = parseInt(timeSelect.value); + updateScore(); + updateTimer(); + startButton.disabled = true; + timeSelect.disabled = true; + gameOverElement.style.display = 'none'; + clearInterval(gameInterval); + clearInterval(balloonInterval); + + gameInterval = setInterval(() => { + timeLeft--; + updateTimer(); + if (timeLeft <= 0) { + endGame(); + } + }, 1000); + + balloonInterval = setInterval(createBalloon, 1000); +} + +function createBalloon() { + const balloon = document.createElement('div'); + balloon.classList.add('balloon'); + const size = Math.random() * 50 + 20; + const colors = getRandomGradient(); + + balloon.style.width = `${size}px`; + balloon.style.height = `${size}px`; + balloon.style.background = colors; + balloon.style.left = `${Math.random() * (gameArea.clientWidth - size)}px`; + balloon.style.top = `${Math.random() * (gameArea.clientHeight - size)}px`; + + balloon.addEventListener('click', () => { + score++; + updateScore(); + gameArea.removeChild(balloon); + }); + + gameArea.appendChild(balloon); + + setTimeout(() => { + if (gameArea.contains(balloon)) { + gameArea.removeChild(balloon); + } + }, 2000); +} + +function getRandomGradient() { + const color1 = getRandomColor(); + const color2 = getRandomColor(); + return `radial-gradient(circle, ${color1}, ${color2})`; +} + +function getRandomColor() { + const letters = '0123456789ABCDEF'; + let color = '#'; + for (let i = 0; i < 6; i++) { + color += letters[Math.floor(Math.random() * 16)]; + } + return color; +} + +function updateScore() { + scoreElement.textContent = `Score: ${score}`; +} + +function updateTimer() { + timerElement.textContent = `Time: ${timeLeft}s`; +} + +function endGame() { + clearInterval(gameInterval); + clearInterval(balloonInterval); + gameOverElement.textContent = `Game Over! Final Score: ${score}`; + gameOverElement.style.display = 'block'; + startButton.disabled = false; + timeSelect.disabled = false; + while (gameArea.firstChild) { + gameArea.removeChild(gameArea.firstChild); + } + gameArea.appendChild(gameOverElement); +} \ No newline at end of file diff --git a/Games/Boom_Blast/style.css b/Games/Boom_Blast/style.css new file mode 100644 index 0000000000..7bc846cdc3 --- /dev/null +++ b/Games/Boom_Blast/style.css @@ -0,0 +1,101 @@ +body { + margin: 0; + padding: 0; + font-family: Arial, sans-serif; + background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); + background-size: 400% 400%; + animation: gradient 15s ease infinite; + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +#game-title { + font-size: 48px; + font-weight: bold; + color: #fff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + margin-bottom: 20px; +} + +#game-area { + width: 600px; + height: 400px; + background-color: rgba(255, 255, 255, 0.2); + border-radius: 10px; + position: relative; + overflow: hidden; +} + +.balloon { + position: absolute; + border-radius: 50%; + cursor: pointer; + animation: float 2s ease-in-out infinite; +} + +@keyframes float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-10px); } +} + +#score, #timer { + font-size: 24px; + color: #fff; + margin: 10px 0; +} + +#controls { + display: flex; + gap: 10px; + margin-top: 10px; +} + +#start-button, #time-select { + font-size: 20px; + padding: 10px 20px; + background-color: #4CAF50; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s; +} + +#start-button:hover { + background-color: #45a049; +} + +#time-select { + background-color: #3498db; +} + +#time-select:hover { + background-color: #2980b9; +} + +#game-over { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 36px; + font-weight: bold; + color: #fff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + display: none; +} \ No newline at end of file diff --git a/Games/Detona/index.html b/Games/Detona/index.html new file mode 100644 index 0000000000..e13220afa2 --- /dev/null +++ b/Games/Detona/index.html @@ -0,0 +1,63 @@ + + + + + + + + + Detona Ralph + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/Games/Detona/readme.md b/Games/Detona/readme.md new file mode 100644 index 0000000000..cb352df934 --- /dev/null +++ b/Games/Detona/readme.md @@ -0,0 +1,49 @@ +## Awesome JSGame Detona Ralph + +``` + #game-development + #javascript-game + #html-css-javascript + #html-css-javascript-games + #ifood + #dio-bootcamp +``` + + +# Bem-vindo ao **JSGame Detona Ralph**! + +Um projeto que, além do entretenimento, demonstra várias técnicas avançadas de desenvolvimento de jogos em JavaScript. + + +Aqui, no repositório, você encontrará os arquivos do projeto. + +Nesta [página do jogo](https://netopaiva.github.io/detona-ralph/) você poderá se divertir com um *game* baseado no famoso filme "Detona Ralph". + +### Tecnologias Utilizadas + +- HTML5 e CSS3 para a estrutura e aparência do jogo. +- JavaScript para a lógica de programação e interatividade. +- Sprites e imagens customizadas para criar a estética única do universo de Detona Ralph. + +### Funcionalidades Incríveis + +- **Sistema de Pontuação**: Acompanhe sua pontuação à medida que progride no jogo e desafie seus amigos a superá-la, clique no quadrado que o Ralph se encontre + +### Como Jogar + +1. Clone este repositório para sua máquina local. +2. Abra o arquivo `index.html` em seu navegador web. +3. Use as setas direcionais para mover o personagem e a barra de espaço para interagir. +4. Divirta-se explorando e coletando moedas, mas fique atento aos inimigos! + +### Contribuição + +Contribuições são bem-vindas! Se você deseja melhorar este jogo, adicionar novos recursos ou corrigir problemas, sinta-se à vontade para abrir um _pull request_. + +### Créditos + +Este jogo foi desenvolvido como parte de um projeto educacional da Digital Innovation One. + +--- + +Divirta-se [jogando o **JSGame Detona Ralph**](https://netopaiva.github.io/detona-ralph/) enquanto explora as técnicas modernas de desenvolvimento de jogos em JavaScript. Lembre-se de conferir o repositório original [aqui](https://github.com/digitalinnovationone/jsgame-detona-ralph) e deixar uma ⭐️ se você gostou do projeto! diff --git a/Games/Detona/src/audios/hit.m4a b/Games/Detona/src/audios/hit.m4a new file mode 100644 index 0000000000..d747823dd2 Binary files /dev/null and b/Games/Detona/src/audios/hit.m4a differ diff --git a/Games/Detona/src/images/favicon.jpg b/Games/Detona/src/images/favicon.jpg new file mode 100644 index 0000000000..8c5153aafc Binary files /dev/null and b/Games/Detona/src/images/favicon.jpg differ diff --git a/Games/Detona/src/images/player.png b/Games/Detona/src/images/player.png new file mode 100644 index 0000000000..3d320717ff Binary files /dev/null and b/Games/Detona/src/images/player.png differ diff --git a/Games/Detona/src/images/ralph.png b/Games/Detona/src/images/ralph.png new file mode 100644 index 0000000000..e8e5b9dd5b Binary files /dev/null and b/Games/Detona/src/images/ralph.png differ diff --git a/Games/Detona/src/images/wall.png b/Games/Detona/src/images/wall.png new file mode 100644 index 0000000000..7e4216a480 Binary files /dev/null and b/Games/Detona/src/images/wall.png differ diff --git a/Games/Detona/src/scripts/engine.js b/Games/Detona/src/scripts/engine.js new file mode 100644 index 0000000000..4dd1859e8b --- /dev/null +++ b/Games/Detona/src/scripts/engine.js @@ -0,0 +1,65 @@ +const state = { + view: { + squares: document.querySelectorAll(".square"), + enemy: document.querySelector(".enemy"), + timeLeft: document.querySelector("#time-left"), + score: document.querySelector("#score"), + }, + values: { + gameVelocity: 1000, + hitPosition: 0, + result: 0, + curretTime: 60, + }, + actions: { + timerId: setInterval(randomSquare, 1000), + countDownTimerId: setInterval(countDown, 1000), + }, +}; + +function countDown() { + state.values.curretTime--; + state.view.timeLeft.textContent = state.values.curretTime; + + if (state.values.curretTime <= 0) { + clearInterval(state.actions.countDownTimerId); + clearInterval(state.actions.timerId); + alert("Game Over! O seu resultado foi: " + state.values.result); + } +} + +function playSound(audioName) { + let audio = new Audio(`./src/audios/${audioName}.m4a`); + audio.volume = 0.2; + audio.play(); +} + +function randomSquare() { + state.view.squares.forEach((square) => { + square.classList.remove("enemy"); + }); + + let randomNumber = Math.floor(Math.random() * 9); + let randomSquare = state.view.squares[randomNumber]; + randomSquare.classList.add("enemy"); + state.values.hitPosition = randomSquare.id; +} + +function addListenerHitBox() { + state.view.squares.forEach((square) => { + square.addEventListener("mousedown", () => { + if (square.id === state.values.hitPosition) { + state.values.result++; + state.view.score.textContent = state.values.result; + state.values.hitPosition = null; + playSound("hit"); + } + }); + }); +} + +function initialize() { + addListenerHitBox(); +} + +initialize(); diff --git a/Games/Detona/src/styles/main.css b/Games/Detona/src/styles/main.css new file mode 100644 index 0000000000..ade1402bdb --- /dev/null +++ b/Games/Detona/src/styles/main.css @@ -0,0 +1,48 @@ +.container { + display: flex; + flex-direction: column; + height: 100vh; + background-image: url("../images/wall.png"); +} + +.menu { + display: flex; + justify-content: space-evenly; + align-items: center; + + height: 90px; + width: 100%; + background-color: #000000; + color: #ffffff; + border-bottom: 5px solid #ffd700; +} + +.panel { + margin-top: 1rem; + display: flex; + align-items: center; + justify-content: center; +} + +.square { + height: 150px; + width: 150px; + border: 1px solid #000000; + background-color: #1aeaa5; +} + +.enemy { + background-image: url("../images/ralph.png"); + background-size: cover; +} + +.menu-lives { + display: flex; + align-items: center; + justify-content: center; +} + +.menu-time h2:nth-child(2), +.menu-score h2:nth-child(2) { + margin-top: 1rem; +} diff --git a/Games/Detona/src/styles/reset.css b/Games/Detona/src/styles/reset.css new file mode 100644 index 0000000000..9395805ea8 --- /dev/null +++ b/Games/Detona/src/styles/reset.css @@ -0,0 +1,7 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + /* font-family: "Bebas Neue", sans-serif; */ + font-family: "Press Start 2P", cursive; +} diff --git a/Games/Drum_kit/Readme.md b/Games/Drum_kit/Readme.md new file mode 100644 index 0000000000..f88fd547b9 --- /dev/null +++ b/Games/Drum_kit/Readme.md @@ -0,0 +1,20 @@ +# **Game_Name** + +Drum Kit [Issue #4876] + +
+ +## **Description 📃** +Drum kit game is developed using HTML, CSS, JavaScript. +Main target is to have experience of drum kit sound and have fun. + + +## **functionalities 🎮** +1. Have experience of drum kit sound and have fun. +
+ +## **How to play? 🕹️** +1. User can click on drum image. +2. User can play using keyboard too. +## **Screenshots 📸** +![Drum_kit](./images/asset.png) diff --git a/Games/Drum_kit/images/asset.png b/Games/Drum_kit/images/asset.png new file mode 100644 index 0000000000..b4da7adf8d Binary files /dev/null and b/Games/Drum_kit/images/asset.png differ diff --git a/Games/Drum_kit/images/crash.png b/Games/Drum_kit/images/crash.png new file mode 100644 index 0000000000..a992fa0f53 Binary files /dev/null and b/Games/Drum_kit/images/crash.png differ diff --git a/Games/Drum_kit/images/kick.png b/Games/Drum_kit/images/kick.png new file mode 100644 index 0000000000..b64877e70d Binary files /dev/null and b/Games/Drum_kit/images/kick.png differ diff --git a/Games/Drum_kit/images/snare.png b/Games/Drum_kit/images/snare.png new file mode 100644 index 0000000000..1e089bacd7 Binary files /dev/null and b/Games/Drum_kit/images/snare.png differ diff --git a/Games/Drum_kit/images/tom1.png b/Games/Drum_kit/images/tom1.png new file mode 100644 index 0000000000..855b211177 Binary files /dev/null and b/Games/Drum_kit/images/tom1.png differ diff --git a/Games/Drum_kit/images/tom2.png b/Games/Drum_kit/images/tom2.png new file mode 100644 index 0000000000..3e9f3636f4 Binary files /dev/null and b/Games/Drum_kit/images/tom2.png differ diff --git a/Games/Drum_kit/images/tom3.png b/Games/Drum_kit/images/tom3.png new file mode 100644 index 0000000000..762cbf8549 Binary files /dev/null and b/Games/Drum_kit/images/tom3.png differ diff --git a/Games/Drum_kit/images/tom4.png b/Games/Drum_kit/images/tom4.png new file mode 100644 index 0000000000..e79c49e1b1 Binary files /dev/null and b/Games/Drum_kit/images/tom4.png differ diff --git a/Games/Drum_kit/index.html b/Games/Drum_kit/index.html new file mode 100644 index 0000000000..03dcb3b280 --- /dev/null +++ b/Games/Drum_kit/index.html @@ -0,0 +1,27 @@ + + + + + + Drum Kit + + + + + + +

Drum 🥁 Kit

+
+ + + + + + + +
+ + + + + diff --git a/Games/Drum_kit/index.js b/Games/Drum_kit/index.js new file mode 100644 index 0000000000..9f1a61a214 --- /dev/null +++ b/Games/Drum_kit/index.js @@ -0,0 +1,103 @@ +// document.querySelector("button").addEventListener("click" , handleClick); + +// function handleClick(){ +// alert("I got clicked"); +// } + + +// SOUND EVENT ONLY + +// var noOfButtons = document.querySelectorAll(".drum").length ; +// for(var i=0; i< noOfButtons ; i++){ +// document.querySelectorAll(".drum")[i].addEventListener("click" , function(){ +// var buttonInnerHTML = this.innerHTML; +// switch(buttonInnerHTML){ +// case "w" : +// var tom1 = new Audio("sounds/tom-1.mp3"); +// tom1.play(); +// break; +// case "a" : +// var tom2 = new Audio("sounds/tom-2.mp3"); +// tom2.play(); +// break; +// case "s" : +// var tom3 = new Audio("sounds/tom-3.mp3"); +// tom3.play(); +// break; +// case "d" : +// var tom4 = new Audio("sounds/tom-4.mp3"); +// tom4.play(); +// break; +// case "j" : +// var snare = new Audio("sounds/snare.mp3"); +// snare.play(); +// case "k" : +// var crash = new Audio("sounds/crash.mp3"); +// crash.play(); +// break; +// case "l" : +// var kick = new Audio("sounds/kick-bass.mp3"); +// kick.play(); +// break; +// default : console.log(); +// } +// }); +// } + + +// DETECT BUTTON PRESS +var noOfButtons = document.querySelectorAll(".drum").length ; +for(var i=0; i< noOfButtons ; i++){ + document.querySelectorAll(".drum")[i].addEventListener("click" , function(){ + var buttonInnerHTML = this.innerHTML; + makeSound(buttonInnerHTML); + buttonAnimation(buttonInnerHTML); + }); +} +// DETECT KEYBOARD PRESS +document.addEventListener("keydown" , function(event){ + makeSound(event.key); + buttonAnimation(event.key); +}); + +function makeSound(key){ + switch(key){ + case "w" : + var tom1 = new Audio("sounds/tom-1.mp3"); + tom1.play(); + break; + case "a" : + var tom2 = new Audio("sounds/tom-2.mp3"); + tom2.play(); + break; + case "s" : + var tom3 = new Audio("sounds/tom-3.mp3"); + tom3.play(); + break; + case "d" : + var tom4 = new Audio("sounds/tom-4.mp3"); + tom4.play(); + break; + case "j" : + var snare = new Audio("sounds/snare.mp3"); + snare.play(); + case "k" : + var crash = new Audio("sounds/crash.mp3"); + crash.play(); + break; + case "l" : + var kick = new Audio("sounds/kick-bass.mp3"); + kick.play(); + break; + default : console.log(); + } +} + +function buttonAnimation(currentKey){ + var active = document.querySelector("." + currentKey); + active.classList.add("pressed"); + + setTimeout(function(){ + active.classList.remove("pressed"); + },100); +} diff --git a/Games/Drum_kit/sounds/crash.mp3 b/Games/Drum_kit/sounds/crash.mp3 new file mode 100644 index 0000000000..d568062695 Binary files /dev/null and b/Games/Drum_kit/sounds/crash.mp3 differ diff --git a/Games/Drum_kit/sounds/kick-bass.mp3 b/Games/Drum_kit/sounds/kick-bass.mp3 new file mode 100644 index 0000000000..faf06c6cea Binary files /dev/null and b/Games/Drum_kit/sounds/kick-bass.mp3 differ diff --git a/Games/Drum_kit/sounds/snare.mp3 b/Games/Drum_kit/sounds/snare.mp3 new file mode 100644 index 0000000000..e7cf5b841b Binary files /dev/null and b/Games/Drum_kit/sounds/snare.mp3 differ diff --git a/Games/Drum_kit/sounds/tom-1.mp3 b/Games/Drum_kit/sounds/tom-1.mp3 new file mode 100644 index 0000000000..7dc3003d0c Binary files /dev/null and b/Games/Drum_kit/sounds/tom-1.mp3 differ diff --git a/Games/Drum_kit/sounds/tom-2.mp3 b/Games/Drum_kit/sounds/tom-2.mp3 new file mode 100644 index 0000000000..f3c04855c9 Binary files /dev/null and b/Games/Drum_kit/sounds/tom-2.mp3 differ diff --git a/Games/Drum_kit/sounds/tom-3.mp3 b/Games/Drum_kit/sounds/tom-3.mp3 new file mode 100644 index 0000000000..38060330a7 Binary files /dev/null and b/Games/Drum_kit/sounds/tom-3.mp3 differ diff --git a/Games/Drum_kit/sounds/tom-4.mp3 b/Games/Drum_kit/sounds/tom-4.mp3 new file mode 100644 index 0000000000..58b04bebbd Binary files /dev/null and b/Games/Drum_kit/sounds/tom-4.mp3 differ diff --git a/Games/Drum_kit/styles.css b/Games/Drum_kit/styles.css new file mode 100644 index 0000000000..454e127f5f --- /dev/null +++ b/Games/Drum_kit/styles.css @@ -0,0 +1,86 @@ +body { + text-align: center; + background-color: #283149; + } + + h1 { + font-size: 5rem; + color: #DBEDF3; + font-family: "Arvo", cursive; + text-shadow: 3px 0 #DA0463; + + } + + footer { + color: #DBEDF3; + font-family: sans-serif; + } + + .w { + background-image: url("images/tom1.png"); + } + + .a { + background-image: url("images/tom2.png"); + } + + .s { + background-image: url("images/tom3.png"); + } + + .d { + background-image: url("images/tom4.png"); + } + + .j { + background-image: url("images/snare.png"); + } + + .k { + background-image: url("images/crash.png"); + } + + .l { + background-image: url("images/kick.png"); + } + + .set { + margin: 10% auto; + } + + .game-over { + background-color: red; + opacity: 0.8; + } + + .pressed { + box-shadow: 0 3px 4px 0 #DBEDF3; + opacity: 0.5; + } + + .red { + color: red; + } + + .drum { + outline: none; + border: 10px solid #404B69; + font-size: 5rem; + font-family: 'Arvo', cursive; + line-height: 2; + font-weight: 900; + color: #DA0463; + text-shadow: 3px 0 #DBEDF3; + border-radius: 15px; + display: inline-block; + width: 150px; + height: 150px; + text-align: center; + margin: 10px; + background-color: white; + } + + .pressed{ + box-shadow: 0px 3px 4px 0 #DBEDF3; + opacity: 0.5; + } \ No newline at end of file diff --git a/Games/Four_In_Row/README.md b/Games/Four_In_Row/README.md new file mode 100644 index 0000000000..836dd6597e --- /dev/null +++ b/Games/Four_In_Row/README.md @@ -0,0 +1,30 @@ +# **Four_In_Row** + +## **Description 📃** + +- Four in a Row is a two-player strategy game where players take turns dropping colored discs into a vertical grid. The objective is to connect four of their own discs in a row—either horizontally, vertically, or diagonally—before the opponent does. + +## **Functionalities 🎮** + +- Two-Player Mode: Designed for two players, either competitively or cooperatively. +- Vertical Grid: Features a vertical grid with slots where discs are dropped. +- Disc Colors: Players use different colored discs to differentiate between their moves. +- Winning Condition: The goal is to connect four discs in a row, either horizontally, vertically, or diagonally. +- Turn-Based Play: Players take turns dropping discs into the grid. +- Game Over Detection: The game ends when a player achieves four in a row or when the grid is full. +
+ +## **How to play? 🕹️** + +- Players take turns dropping colored discs into a vertical grid. +- The objective is to connect four of your discs in a row horizontally, vertically, or diagonally. +- The game ends when a player connects four in a row or the grid is full. + +
+ +## **Screenshots 📸** +![image](https://github.com/user-attachments/assets/613f20e4-153f-4c1c-ba84-7fb04a95b293) + +![image](https://github.com/user-attachments/assets/08d88616-d097-4f5e-ac36-cd93f3f97ac2) + +

Happy Coding 🧑‍💻

\ No newline at end of file diff --git a/Games/Four_In_Row/index.html b/Games/Four_In_Row/index.html new file mode 100644 index 0000000000..4f2f6aee2e --- /dev/null +++ b/Games/Four_In_Row/index.html @@ -0,0 +1,313 @@ + + + + + + Four In Row + + + + + + + + + + + +
+ +
+ +

Player - 1

+ +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ + + +
+ + + + + \ No newline at end of file diff --git a/Games/Four_In_Row/script.js b/Games/Four_In_Row/script.js new file mode 100644 index 0000000000..bf0a39008c --- /dev/null +++ b/Games/Four_In_Row/script.js @@ -0,0 +1,242 @@ +// DOM Variables + +var buttons = document.getElementsByClassName("btn"); +var reset = document.getElementById("reset-btn"); +var playerType = document.getElementById("player-type"); + +// Game Flow Variables + +var playerNumber = 1; // Initially player - 1 gets to start his/her turn + +var filledGrid = []; // Player board + +var filledCells = 0; // No. of cells that has been filled + +for(var i = 0; i < 6; i++) { + + var arr = [-1 , -1 , -1 , -1 , -1 , -1 , -1]; // Board is initialised with -1 + filledGrid.push(arr); + +} + + +// Event Listener for Buttons + +reset.addEventListener("click" , function() { + + resetBoard(); + +}); + +for(var i = 0; i < buttons.length; i++) { + + // Handing the Event when button was clicked + + buttons[i].addEventListener("click" , function() { + + // Make move and disable the button to avoid furthur clicking it again + + var buttonNo = this.classList[1]; + makeMove(this , buttonNo.slice(4)); + + }); + +} + + +// Function to Make Move on the passed button and disable it +function makeMove(button , buttonNo) { + + var row = buttonNo % 7 === 0 ? Math.floor(buttonNo / 7) - 1 : Math.floor(buttonNo / 7); + var col = buttonNo % 7 === 0 ? 6: (buttonNo % 7) - 1; + + if(playerNumber === 1) { + + button.classList.add("btn-player-1"); + + + filledGrid[row][col] = 1; + filledCells++; + + + if(playerWon(row , col , 1) === true) { + setTimeout(function() { + alert("Game Over: Green Wins"); + resetBoard(); + } , 200); + } + + // Update the player + playerNumber = 2; + playerType.textContent = "Player - 2"; + + } else { + + button.classList.add("btn-player-2"); + + + filledGrid[row][col] = 2; + filledCells++; + + if(playerWon(row , col , 2) === true) { + setTimeout(function() { + alert("Game Over : Red Wins"); + resetBoard(); + } , 200); + } + + // Update the player + playerNumber = 1; + playerType.textContent = "Player - 1"; + + } + + // If all the cells has been filled + + if(filledCells === 42) { + setTimeout(function() { + alert("Game Draw"); + resetBoard(); + } , 200); + return; + } + + // Disable the button is the move is made + setTimeout(function () { + button.disabled = true; + },10); + +} + +function playerWon(row , col , player) { + + var count = 0; + + // Check for columns + + for(var i = 0; i < 7; i++) { + if(filledGrid[row][i] === player) { + count++; + if(count === 4) return true; + } else { + count = 0; + } + + } + + count = 0; + + // Check for Rows + + for(var i = 0; i < 6; i++) { + if(filledGrid[i][col] === player) { + count++; + if(count === 4) return true; + } else { + count = 0; + } + } + + + count = 0; + + // Check for primary diagonal + + if(row >= col) { + + var i = row - col; + var j = 0; + + for(; i <= 5; i++ , j++) { + if(filledGrid[i][j] === player) { + count++; + if(count == 4) return true; + } else { + count = 0; + } + } + } else { + + var i = 0; + var j = col - row; + + for(; j <= 6; i++ , j++) { + if(filledGrid[i][j] === player) { + count++; + if(count == 4) return true; + } else { + count = 0; + } + } + + } + + count = 0; + + // Check for secondary diagonal + + if(row + col <= 5) { + + var i = row + col; + var j = 0; + + for(; i >= 0 && j <= row + col; i-- , j++) { + if(filledGrid[i][j] === player) { + count++; + if(count == 4) return true; + } else { + count = 0; + } + } + + } else { + + var i = 5; + var j = row + col - 5; + + for(; j <= 6; j++ , i--) { + if(filledGrid[i][j] === player) { + count++; + if(count == 4) return true; + } else { + count = 0; + } + } + + } + return false; + +} + +// Function to reset the Board completely +function resetBoard() { + + // Remove all the disabled buttons and the styles + + for(var i = 0; i < buttons.length; i++) { + buttons[i].disabled = false; + buttons[i].classList.remove("btn-player-1"); + buttons[i].classList.remove("btn-player-2"); + } + + + // Player Number is changed to 1 + + playerNumber = 1; + playerType.textContent = "Player - 1"; + + + // Filled Cells is changed to 0 + + filledCells = 0; + + + // Filling the Board with -1 + + for(var i = 0; i < 6; i++) { + for(var j = 0; j < 7; j++) { + filledGrid[i][j] = -1; + } + } + +} \ No newline at end of file diff --git a/Games/Four_In_Row/style.css b/Games/Four_In_Row/style.css new file mode 100644 index 0000000000..fb4657d54c --- /dev/null +++ b/Games/Four_In_Row/style.css @@ -0,0 +1,238 @@ +body { + background-color: #e9e7fd; +} + +/* Main Container */ + +#main-container { + + align-items: center; + display: flex; + flex-direction: column; + justify-content: center; + min-height: 100vh; +} + +/* Player Details */ + +#player { + + background-color: #d5deff; + border: 8px solid #4f3ff0; + border-radius: 10px; + margin-top: 50px; + padding: 20px; + width: 400px; + +} + +#player-type { + + color: #4f3ff0; + font-family: "Poppins"; + letter-spacing: 5px; + text-align: center; + text-transform: uppercase; + +} + +/* Grid */ + +#grid { + + background-color: #4f3ff0; + border: 3.5px solid #d5deff; + border-radius: 8px; + box-shadow: 2px 3px 7px grey; + margin-top: 50px; + max-width: 600px; + padding: 3px; + +} + +/* Grid Row */ + +.row { + + display: flex; + +} + +/* Grid Column */ + +.col { + + align-items: center; + background-color: #d5deff; + border: 1px solid #4f3ff0; + border-radius: 5px; + display: flex; + justify-content: center; + height: 75px; + margin: 5px; + width: 75px; + +} + +/* Buttons */ + +.btn { + + background-color: transparent; + border: none; + color: transparent; + height: 100%; + padding: 0; + width: 100%; + +} + +#reset-btn { + + background-color: transparent; + border: 2px solid #4f3ff0; + border-radius: 5px; + color: #4f3ff0; + font-family: "Poppins"; + font-size: 1.5rem; + margin: 50px 0; + padding: 10px 40px; + text-transform: uppercase; + transition: 0.7s; + +} + +#reset-btn:hover { + + background-color: #4f3ff0; + color: #d5deff; + cursor: pointer; + transition: 0.7s; + +} + +/* Player - 1 Buttons */ + +.btn-player-1 { + + background-color: #34c471; + border: 2px solid #34c471; + border-radius: 50%; + color: red; + height: 50px; + width: 50px; + +} + +/* Player - 2 Buttons */ + +.btn-player-2 { + + background-color: #df3670; + border: 2px solid #df3670; + border-radius: 50%; + color: red; + height: 50px; + width: 50px; + +} + +/* Media Queries */ + +@media (max-width: 800px) { + #grid { + width: 500px; + } + + .col { + height: 62px; + margin: 4px; + width: 62px; + } + + #player { + width: 450px; + } + + #reset-btn { + font-size: 1.2rem; + } + + .btn-player-1 { + height: 40px; + width: 40px; + } + + .btn-player-2 { + height: 40px; + width: 40px; + } +} + +@media (max-width: 550px) { + #grid { + width: 400px; + } + + .col { + height: 50px; + margin: 3px; + width: 50px; + } + + #player { + width: 350px; + } + + #reset-btn { + font-size: 1rem; + } + + .btn-player-1 { + height: 30px; + width: 30px; + } + + .btn-player-2 { + height: 30px; + width: 30px; + } +} + +@media (max-width: 450px) { + #grid { + width: 90%; + } + + .col { + height: 40px; + margin: 2px; + } + + #player { + align-items: center; + display: flex; + border-width: 5px; + justify-content: center; + height: 30px; + width: 78%; + } + + #player-type { + font-size: 1.2rem; + } + + #reset-btn { + font-size: 0.8rem; + } + + .btn-player-1 { + height: 20px; + width: 20px; + } + + .btn-player-2 { + height: 20px; + width: 20px; + } +} \ No newline at end of file diff --git a/Games/Guess_That_Pokemon/README.md b/Games/Guess_That_Pokemon/README.md new file mode 100644 index 0000000000..3f33a9858b --- /dev/null +++ b/Games/Guess_That_Pokemon/README.md @@ -0,0 +1,35 @@ +# **Game_Name** +Guess That Pokemon + +
+ +## **Description 📃** + +- A black outline of the pokemon will be displayed on the screen and the player has to guess which pokemon it is. + + +## **functionalities 🎮** + +- There will be options for guess, quit and hint. +
+ +## **How to play? 🕹️** + +- If the player guesses the pokemon without using a hint they are rewarded 100 points. +- If the player guesses the pokemon after taking a hint they are rewarded 50 points. +- If the player incorrectly guesses the pokemon they get 0 points. +- If the player quits they get 0 points. + +
+ +## **Screenshots 📸** + + + +![Guess That Pokemon](./assests/pokemon1.png) + +
+ +## **Working video 📹** + +![Guess That Pokemon](./assests/pokemon3.png) \ No newline at end of file diff --git a/Games/Guess_That_Pokemon/allPokemons.js b/Games/Guess_That_Pokemon/allPokemons.js new file mode 100644 index 0000000000..20c4d1d86b --- /dev/null +++ b/Games/Guess_That_Pokemon/allPokemons.js @@ -0,0 +1,200 @@ +var abra = { + name: "abra", + source: "https://archives.bulbagarden.net/media/upload/9/9e/PCP063.png", + hint:"A small, timid Psychic-type Pokémon with exceptional telekinetic abilities. It's powers manifest most strongly during sleep." +} + +var alakazam = { + name: "alakazam", + source: "https://archives.bulbagarden.net/media/upload/a/a6/PCP065.png", + hint:"The highly intelligent evolution of Abra, boasting immense psychic power. Known for its telepathy and spoon-bending abilities" +} + +var arcanine ={ + name:"arcanine", + source:"https://archives.bulbagarden.net/media/upload/thumb/4/42/0059Arcanine.png/375px-0059Arcanine.png", + hint:"A Fire-type Pokémon and it evolves from Growlithe when exposed to a Fire Stone." +} + +var arbok = { + name: "arbok", + source: "https://archives.bulbagarden.net/media/upload/9/9d/PCP024.png", + hint:"A large, intimidating Poison-type snake Pokémon with a venomous bite." +} + +var articuno = { + name: "articuno", + source: "https://archives.bulbagarden.net/media/upload/d/db/PCP144.png", + hint:"A legendary Ice/Flying-type bird Pokémon with the power to freeze its surroundings." +} + +var beedrill = { + name: "beedrill", + source: "https://archives.bulbagarden.net/media/upload/a/ac/PCP015.png", + hint:"A fierce Bug/Poison-type with venomous stingers." +} + +var bulbasaur = { + name: "bulbasaur", + source: "https://archives.bulbagarden.net/media/upload/thumb/f/fb/0001Bulbasaur.png/375px-0001Bulbasaur.png", + hint:"Along with Charmander and Squirtle, this is one of the three first partner Pokémon of Ash available at the beginning of Pokémon Red, " +} + +var charmander = { + name: "charmander", + source: "https://archives.bulbagarden.net/media/upload/6/6f/PCP004.png", + hint:"A small, lizard-like Fire-type with a burning tail. Its flame grows stronger with its emotions." +} + +var charmeleon = { + name: "charmeleon", + source: "https://archives.bulbagarden.net/media/upload/f/f5/PCP005.png", + hint:"The fiery evolution of Charmander, known for its aggressive nature and powerful flame attacks." +} + +var charizard = { + name: "charizard", + source: "https://archives.bulbagarden.net/media/upload/5/5e/PCP006.png", + hint:"A formidable Fire/Flying-type, it is capable of unleashing devastating fire-based attacks." +} + +var chimecho = { + name: "chimecho", + source: "https://archives.bulbagarden.net/media/upload/7/7e/PCP358.png", + hint:"A floating, bell-shaped Psychic-type with a calming aura. Its melodious chimes can soothe or confuse opponents." +} + +var crobat = { + name: "crobat", + source: "https://archives.bulbagarden.net/media/upload/e/e3/PCP169.png", + hint:"A fast and agile Poison/Flying-type with keen eyesight." +} + +var dragonair = { + name: "dragonair", + source: "https://archives.bulbagarden.net/media/upload/9/95/PCP148.png", + hint:"A serpentine Dragon-type Pokémon with the ability to control weather." +} + +var eevee = { + name: "eevee", + source: "https://archives.bulbagarden.net/media/upload/9/98/PCP133.png", + hint:"A small, fox-like Normal-type with the unique ability to evolve into different forms based on various conditions." +} + +var ekans = { + name: "ekans", + source: "https://archives.bulbagarden.net/media/upload/thumb/d/d2/0023Ekans.png/375px-0023Ekans.png", + hint:"It is a Poison-type Pokémon.It evolves into Arbok" +} + +var espeon = { + name: "espeon", + source: "https://archives.bulbagarden.net/media/upload/5/5f/PCP196.png", + hint:"An evolution of Eevee, it is a Psychic-type with heightened senses and the ability to predict opponents' moves." +} + +var flareon = { + name: "flareon", + source: "https://archives.bulbagarden.net/media/upload/2/2d/PCP136.png", + hint:"An evolution of Eevee, it is a Fire-type with an intense, fiery coat." +} + +var glaceon = { + name: "glaceon", + source: "https://archives.bulbagarden.net/media/upload/d/d0/PCP471.png", + hint:" An Ice-type evolution of Eevee, it possesses the ability to freeze nearby water." +} + +var golbat = { + name: "golbat", + source: "https://archives.bulbagarden.net/media/upload/e/ea/PCP042.png", + hint:"A larger, more powerful evolution of Zubat, this Poison/Flying-type is known for its sharp teeth and high speed." +} + +var gyarados = { + name: "gyarados", + source: "https://archives.bulbagarden.net/media/upload/9/9d/PCP130.png", + hint:"A monstrous Water/Flying-type with a violent temper. Once a Magikarp, it undergoes a dramatic transformation." +} + +var haunter = { + name: "haunter", + source: "https://archives.bulbagarden.net/media/upload/8/84/PCP093.png", + hint:"A mischievous Ghost/Poison-type with the ability to possess others." +} + +var horsea = { + name: "horsea", + source: "https://archives.bulbagarden.net/media/upload/thumb/1/14/0116Horsea.png/375px-0116Horsea.png", + hint:"It is a Water-type Pokémon.It evolves into Seadra which evolves into Kingdra when traded while holding a Dragon Scale." +} + +var igglybuff = { + name: "igglybuff", + source: "https://archives.bulbagarden.net/media/upload/9/9f/PCP174.png", + hint:"A pink, round Normal-type known for its sweet singing voice." +} + +var jigglypuff = { + name: "jigglypuff", + source: "https://archives.bulbagarden.net/media/upload/b/b4/PCP039.png", + hint:"The evolved form of Igglybuff, still adorable but with a powerful singing voice that can induce sleep." +} + +var jolteon = { + name: "jolteon", + source: "https://archives.bulbagarden.net/media/upload/5/58/PCP135.png", + hint:"An Electric-type evolution of Eevee known for its incredible speed and powerful electric attacks." +} + +var kadabra = { + name: "kadabra", + source: "https://archives.bulbagarden.net/media/upload/4/4b/PCP064.png", + hint:"The intermediate stage between Abra and Alakazam, possessing increased psychic prowess." +} + +var magikarp = { + name: "magikarp", + source: "https://archives.bulbagarden.net/media/upload/thumb/d/d1/0129Magikarp.png/375px-0129Magikarp.png", + hint:" A weak, water-type Pokémon known for its inability to battle effectively. Despite its unimpressive appearance and abilities, it evolves into the powerful Gyarados." +} + +var magneton = { + name: "magneton", + source: "https://archives.bulbagarden.net/media/upload/thumb/d/d9/0082Magneton.png/375px-0082Magneton.png", + hint:"An Electric/Steel-type Pokémon formed by three Magnemite linked together. Known for its strong magnetic force and ability to generate powerful electric attacks." +} + +var meowth = { + name: "meowth", + source: "https://archives.bulbagarden.net/media/upload/thumb/d/d6/0052Meowth.png/375px-0052Meowth.png", + hint:"A Normal-type Team Rocket Pokémon known for its cunning and ambition. Often seen carrying coins, it dreams of becoming rich." +} + +var pichu = { + name: "pichu", + source: "https://archives.bulbagarden.net/media/upload/thumb/f/f3/0172Pichu.png/375px-0172Pichu.png", + hint:"A small, Electric-type baby Pokémon with a playful and curious nature. Known for its unpredictable electric shocks caused by excitement or surprise." +} + +var pidgey = { + name: "pidgey", + source: "https://archives.bulbagarden.net/media/upload/thumb/0/0c/0016Pidgey.png/375px-0016Pidgey.png", + hint:"A common Normal/Flying-type Pokémon known for its docile nature. Often found in grassy areas, it prefers to flee from danger rather than fight." +} + +var pikachu = { + name: "pikachu", + source: "https://archives.bulbagarden.net/media/upload/thumb/4/4a/0025Pikachu.png/375px-0025Pikachu.png", + hint:"An iconic Electric-type Pokémon known for its cheerful personality and electric attacks. It stores electricity in its cheeks, which it can release in powerful bolts." +} + +var psyduck = { + name: "psyduck", + source: "https://archives.bulbagarden.net/media/upload/thumb/3/3f/0054Psyduck.png/375px-0054Psyduck.png", + hint:"A Water-type Pokémon known for its constant headaches. Despite its dazed appearance, it possesses hidden psychic powers that are often unleashed unintentionally due to the pain." +} + + + diff --git a/Games/Guess_That_Pokemon/assests/pokemon.jpg b/Games/Guess_That_Pokemon/assests/pokemon.jpg new file mode 100644 index 0000000000..c7894e7c16 Binary files /dev/null and b/Games/Guess_That_Pokemon/assests/pokemon.jpg differ diff --git a/Games/Guess_That_Pokemon/assests/pokemon1.png b/Games/Guess_That_Pokemon/assests/pokemon1.png new file mode 100644 index 0000000000..1f256f374b Binary files /dev/null and b/Games/Guess_That_Pokemon/assests/pokemon1.png differ diff --git a/Games/Guess_That_Pokemon/assests/pokemon2.png b/Games/Guess_That_Pokemon/assests/pokemon2.png new file mode 100644 index 0000000000..320e5c9c77 Binary files /dev/null and b/Games/Guess_That_Pokemon/assests/pokemon2.png differ diff --git a/Games/Guess_That_Pokemon/assests/pokemon3.png b/Games/Guess_That_Pokemon/assests/pokemon3.png new file mode 100644 index 0000000000..72e5386d83 Binary files /dev/null and b/Games/Guess_That_Pokemon/assests/pokemon3.png differ diff --git a/Games/Guess_That_Pokemon/index.html b/Games/Guess_That_Pokemon/index.html new file mode 100644 index 0000000000..8f3d95ee44 --- /dev/null +++ b/Games/Guess_That_Pokemon/index.html @@ -0,0 +1,56 @@ + + + + + + + + Who's that Pokemon? + + + + + + + + + + + + + +
+

Who's that Pokemon?

+
+ +
+ +
+ some image +
+ + +
+ + + +
+ +
+ + + +
+ +
+ + + + + + \ No newline at end of file diff --git a/Games/Guess_That_Pokemon/script.js b/Games/Guess_That_Pokemon/script.js new file mode 100644 index 0000000000..283e543787 --- /dev/null +++ b/Games/Guess_That_Pokemon/script.js @@ -0,0 +1,86 @@ +/* As soon as you initialize the page, choose a random image */ +window.onload = choosePic; +let index; +let points = 0; +let hintTaken = false; + +/* Array that receives all Pokemons in the game. You can greatly improve this array */ +const allPokemons = new Array(abra, alakazam, arcanine, arbok, articuno, beedrill, bulbasaur, charmander, + charmeleon, charizard, chimecho, crobat, dragonair, eevee, ekans, espeon, flareon, glaceon, golbat, + gyarados, haunter, horsea, igglybuff, jigglypuff, jolteon, kadabra, magikarp, magneton, + meowth, pichu, pidgey, pikachu, psyduck); + +function randomNumber() { + return Math.floor(Math.random() * allPokemons.length) + 1; +} + +/* Choose a random Pokemon */ +function choosePic() { + index = randomNumber(); + document.getElementById("canvas").src = allPokemons[index].source; + hintTaken = false; +} + +function clearInput() { + document.getElementById("guessInput").value = ""; +} + +function showAlert(num) { + if (num == 1) { + if (!hintTaken) { + points += 100; + } else { + points += 50; + } + document.getElementById("modal-message").innerText="Congratulations, You did it! It's " + allPokemons[index].name + "!"+"You earned " + (hintTaken ? 50 : 100) + " points!" +"\n Total Points are :" + points; + document.getElementById("modal").style.display = "block"; + } else { + document.getElementById("modal-message").innerText = "Oops, Thats' not correct. It was " + allPokemons[index].name + "!"; + document.getElementById("modal").style.display = "block"; + points += 0; + } + // Add event listener to the cancel button + var closeButton = document.querySelector(".close"); + closeButton.addEventListener("click", function() { + document.getElementById("modal").style.display = "none"; + }); +} + +function tryGuess() { + if (document.getElementById("guessInput").value.trim().toLowerCase() === allPokemons[index].name) { + + showAlert(1); + document.getElementById("canvas").style.filter = "brightness(100%)"; + allPokemons.splice(index, 1); + + if (allPokemons.length >= 1){ + setTimeout(function () { + + document.getElementById("canvas").style.filter = "brightness(0%)"; + choosePic(); + clearInput(); + + }, 500); + } else { + alert("You managed to guess all the Pokemons! You are awesome! Thanks for playing, I hope you had fun ^~^ ") + document.getElementById("title").innerHTML = "You win! Yay!"; + } + + } else { + showAlert(0); + choosePic(); + clearInput(); + } +} + +function giveHint() { + hintTaken = true; + document.getElementById("modal-message").innerText="Hint: " + allPokemons[index].hint; + document.getElementById("modal").style.display = "block"; + + // Add event listener to the cancel button + var closeButton = document.querySelector(".close"); + closeButton.addEventListener("click", function() { + document.getElementById("modal").style.display = "none"; + }); +} \ No newline at end of file diff --git a/Games/Guess_That_Pokemon/style.css b/Games/Guess_That_Pokemon/style.css new file mode 100644 index 0000000000..fa7d51b9fe --- /dev/null +++ b/Games/Guess_That_Pokemon/style.css @@ -0,0 +1,143 @@ +body { + background: url('./assests/pokemon.jpg') no-repeat center center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + height: 100%; + text-align: center; +} + +img { + width: 100%; + height: 100%; +} + +figure { + border: 10px solid #000000; + background-color: #FFFFFF; + margin-left: auto; + margin-right: auto; + width: 200px; + height: 200px; + text-align: center; + border-radius: 5px; + padding: 15px; +} + +button { + font-family: 'Indie Flower'; + font-weight: bold; + border: none; + border-radius: 15px; + width: 200px; + height: 50px; + margin: 5px; + background-color: #C9CBA3; + color: #59594A; + font-size: 30px; + transition: 0.05s; + padding: 5px;; +} + +button:hover { + cursor: pointer; + background-color: #bf8028; + color: #FFFFFF; +} + +header { + font-family: 'Indie Flower', cursive; + font-size: 20px; +} + +#canvas { + filter: brightness(0%); +} + +.box { + margin: 15px; + padding: 10px; +} + +.main { + display: inline-block; + background-color: #322c2b; + width: 500px; + height: 500px; + background-color: rgba(0, 0, 255, 0.2); /* blue color with 20% opacity */ + backdrop-filter: blur(10px); /* blur the background behind the box */ + -webkit-backdrop-filter: blur(10px); /* for Safari and Chrome */ + padding: 20px; + margin: 40px auto; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); +} + +.main { + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.3)); + border: 1px solid rgba(255, 255, 255, 0.5); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2), 0 0 20px rgba(0, 0, 255, 0.2); + } + +.main input { + width: 70%; + height: 30px; + font-size: 300%; + text-align: center; + padding: 10px; + border-radius: 5px; +} + +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); +} + +.modal-content { + background-color: #f1f1f1; + margin: 15% auto; + padding: 20px; + border: 1px solid #888; + width: 80%; + max-width: 800px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); +} + +.close { + color: #aaa; + float: right; + font-size: 28px; + font-weight: bold; +} + +.close:hover, +.close:focus { + color: black; + text-decoration: none; + cursor: pointer; +} + +/* Responsive design */ +@media only screen and (max-width: 600px) { + .main { + width: 80%; + height: 80% + } + .main input { + width: 90%; + } + button { + width: 90%; + } + .modal-content { + width: 90%; + } +} \ No newline at end of file diff --git a/Games/Hangman_Game/README.md b/Games/Hangman_Game/README.md new file mode 100644 index 0000000000..3f104604e2 --- /dev/null +++ b/Games/Hangman_Game/README.md @@ -0,0 +1,37 @@ +# **Game_Name** + +Hangman Game + +
+ +## **Description 📃** + +- **Hangman Game** is an interactive game where you have to guess the word in six chances. + +## **functionalities 🎮** + +- You have to select one category ,on the basis of that category you have to guess the word. +- You have six chances in which you have guess,when you choose wrong letter then one by one the part of the man form. +- If you not able to guess till the man form then the game ends. +
+ +## **How to play? 🕹️** + +- First choose the option whose word you want to guess. +- Guess the word within six chances. +- If the guess is correct you win else lose. +- Then play again . + +
+ +## **Screenshots 📸** + +
+ +![image](../../assets/images/Hangman_Game.png) + + +
+ + + \ No newline at end of file diff --git a/Games/Hangman_Game/index.html b/Games/Hangman_Game/index.html new file mode 100644 index 0000000000..b728f07431 --- /dev/null +++ b/Games/Hangman_Game/index.html @@ -0,0 +1,29 @@ + + + + + + Hangman Game + + + + + + +
+
+
+
+ +
+
+ +
+
+ + + + diff --git a/Games/Hangman_Game/script.js b/Games/Hangman_Game/script.js new file mode 100644 index 0000000000..e83049e983 --- /dev/null +++ b/Games/Hangman_Game/script.js @@ -0,0 +1,248 @@ +//Initial References +const letterContainer = document.getElementById("letter-container"); +const optionsContainer = document.getElementById("options-container"); +const userInputSection = document.getElementById("user-input-section"); +const newGameContainer = document.getElementById("new-game-container"); +const newGameButton = document.getElementById("new-game-button"); +const canvas = document.getElementById("canvas"); +const resultText = document.getElementById("result-text"); + +//Options values for buttons +let options = { + fruits: [ + "Apple", + "Blueberry", + "Mandarin", + "Pineapple", + "Pomegranate", + "Watermelon", + "Banana", + "Cherry", + "Avocado", + "Peach", + ], + animals: ["Elephant", "Rhinoceros", "Squirrel", "Panther", "Tiger", "Zebra","Monkey","Horse","Goat","Eagle"], + countries: [ + "India", + "Hungary", + "Kyrgyzstan", + "Switzerland", + "Zimbabwe", + "Dominica", + "Spain", + "Tibet", + "Algeria", + "Cyprus", + ], + colors: ["Turquoise","Beige","Azure","lavender","Yellow","Ivory","Coral","Indigo","Maroon","Emerald"], +}; + +//count +let winCount = 0; +let count = 0; + +let chosenWord = ""; + +//Display option buttons +const displayOptions = () => { + optionsContainer.innerHTML += `

Please Select An Option

`; + let buttonCon = document.createElement("div"); + for (let value in options) { + buttonCon.innerHTML += ``; + } + optionsContainer.appendChild(buttonCon); +}; + +//Block all the Buttons +const blocker = () => { + let optionsButtons = document.querySelectorAll(".options"); + let letterButtons = document.querySelectorAll(".letters"); + //disable all options + optionsButtons.forEach((button) => { + button.disabled = true; + }); + + //disable all letters + letterButtons.forEach((button) => { + button.disabled.true; + }); + newGameContainer.classList.remove("hide"); +}; + +//Word Generator +const generateWord = (optionValue) => { + let optionsButtons = document.querySelectorAll(".options"); + //If optionValur matches the button innerText then highlight the button + optionsButtons.forEach((button) => { + if (button.innerText.toLowerCase() === optionValue) { + button.classList.add("active"); + } + button.disabled = true; + }); + + //initially hide letters, clear previous word + letterContainer.classList.remove("hide"); + userInputSection.innerText = ""; + + let optionArray = options[optionValue]; + //choose random word + chosenWord = optionArray[Math.floor(Math.random() * optionArray.length)]; + chosenWord = chosenWord.toUpperCase(); + + //replace every letter with span containing dash + let displayItem = chosenWord.replace(/./g, '_'); + + //Display each element as span + userInputSection.innerHTML = displayItem; +}; + +//Initial Function (Called when page loads/user presses new game) +const initializer = () => { + winCount = 0; + count = 0; + + //Initially erase all content and hide letteres and new game button + userInputSection.innerHTML = ""; + optionsContainer.innerHTML = ""; + letterContainer.classList.add("hide"); + newGameContainer.classList.add("hide"); + letterContainer.innerHTML = ""; + + //For creating letter buttons + for (let i = 65; i < 91; i++) { + let button = document.createElement("button"); + button.classList.add("letters"); + //Number to ASCII[A-Z] + button.innerText = String.fromCharCode(i); + //character button click + button.addEventListener("click", () => { + let charArray = chosenWord.split(""); + let dashes = document.getElementsByClassName("dashes"); + //if array contains clciked value replace the matched dash with letter else dram on canvas + if (charArray.includes(button.innerText)) { + charArray.forEach((char, index) => { + //if character in array is same as clicked button + if (char === button.innerText) { + //replace dash with letter + dashes[index].innerText = char; + //increment counter + winCount += 1; + //if winCount equals word lenfth + if (winCount == charArray.length) { + resultText.innerHTML = `

You Win :)

The word was ${chosenWord}

`; + //block all buttons + blocker(); + } + } + }); + } else { + //lose count + count += 1; + //for drawing man + drawMan(count); + //Count==6 because head,body,left arm, right arm,left leg,right leg + if (count == 6) { + resultText.innerHTML = `

You Lose :(

The word was ${chosenWord}

`; + blocker(); + } + } + //disable clicked button + button.disabled = true; + }); + letterContainer.append(button); + } + + displayOptions(); + //Call to canvasCreator (for clearing previous canvas and creating initial canvas) + let { initialDrawing } = canvasCreator(); + //initialDrawing would draw the frame + initialDrawing(); +}; + +//Canvas +const canvasCreator = () => { + let context = canvas.getContext("2d"); + context.beginPath(); + context.strokeStyle = "#000"; + context.lineWidth = 2; + + //For drawing lines + const drawLine = (fromX, fromY, toX, toY) => { + context.moveTo(fromX, fromY); + context.lineTo(toX, toY); + context.stroke(); + }; + + const head = () => { + context.beginPath(); + context.arc(70, 30, 10, 0, Math.PI * 2, true); + context.stroke(); + }; + + const body = () => { + drawLine(70, 40, 70, 80); + }; + + const leftArm = () => { + drawLine(70, 50, 50, 70); + }; + + const rightArm = () => { + drawLine(70, 50, 90, 70); + }; + + const leftLeg = () => { + drawLine(70, 80, 50, 110); + }; + + const rightLeg = () => { + drawLine(70, 80, 90, 110); + }; + + //initial frame + const initialDrawing = () => { + //clear canvas + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + //bottom line + drawLine(10, 130, 130, 130); + //left line + drawLine(10, 10, 10, 131); + //top line + drawLine(10, 10, 70, 10); + //small top line + drawLine(70, 10, 70, 20); + }; + + return { initialDrawing, head, body, leftArm, rightArm, leftLeg, rightLeg }; +}; + +//draw the man +const drawMan = (count) => { + let { head, body, leftArm, rightArm, leftLeg, rightLeg } = canvasCreator(); + switch (count) { + case 1: + head(); + break; + case 2: + body(); + break; + case 3: + leftArm(); + break; + case 4: + rightArm(); + break; + case 5: + leftLeg(); + break; + case 6: + rightLeg(); + break; + default: + break; + } +}; + +//New Game +newGameButton.addEventListener("click", initializer); +window.onload = initializer; \ No newline at end of file diff --git a/Games/Hangman_Game/style.css b/Games/Hangman_Game/style.css new file mode 100644 index 0000000000..eb4726f270 --- /dev/null +++ b/Games/Hangman_Game/style.css @@ -0,0 +1,121 @@ + +* { + padding: 0; + margin: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; + } + body { + background-color: #0f8d20; + } + .container { + font-size: 16px; + background-color: #ffffff; + width: 90vw; + max-width: 34em; + position: absolute; + transform: translate(-50%, -50%); + top: 50%; + left: 50%; + padding: 3em; + border-radius: 0.6em; + box-shadow: 0 1.2em 2.4em rgba(111, 85, 0, 0.25); + } + #options-container { + text-align: center; + } + #options-container div { + width: 100%; + display: flex; + justify-content: space-between; + margin: 1.2em 0 2.4em 0; + } + #options-container button { + padding: 0.6em 1.2em; + border: 3px solid #000000; + background-color: #ffffff; + color: #000000; + border-radius: 0.3em; + text-transform: capitalize; + cursor: pointer; + } + #options-container button:disabled { + border: 3px solid #808080; + color: #808080; + background-color: #efefef; + } + #options-container button.active { + background-color: #486823; + border: 3px solid #000000; + color: #fff; + } + .letter-container { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.6em; + } + #letter-container button { + height: 2.4em; + width: 2.4em; + border-radius: 0.3em; + background-color: #ffffff; + cursor: pointer; + } + .new-game-popup { + background-color: #ffffff; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + border-radius: 0.6em; + } + + #user-input-section { + display: flex; + justify-content: center; + font-size: 1.8em; + margin: 0.6em 0 1.2em 0; + } + canvas { + display: block; + margin: auto; + border: 10px solid #246346; + border-radius: 10px; + } + .hide { + display: none; + } + #result-text h2 { + font-size: 1.8em; + text-align: center; + } + #result-text p { + font-size: 1.25em; + margin: 1em 0 2em 0; + } + #result-text span { + font-weight: 600; + } + #new-game-button { + font-size: 1.25em; + padding: 0.5em 1em; + background-color: #3a990a; + border: 3px solid #000000; + color: #fff; + border-radius: 0.2em; + cursor: pointer; + } + .win-msg { + color: #088349; + } + .lose-msg { + color: #a52525; + } + \ No newline at end of file diff --git a/Games/Quick_Math/README.md b/Games/Quick_Math/README.md new file mode 100644 index 0000000000..f6e785d746 --- /dev/null +++ b/Games/Quick_Math/README.md @@ -0,0 +1,39 @@ +# **Quick Math** + +--- + +
+ +## **Description 📃** + +- Quick Math is a fun and educational browser-based game designed to test and improve your arithmetic skills. Players solve addition problems under a time limit, aiming to score as many points as possible. + + + +## **Functionalities 🎮** + +- Welcomes the player and offers a "Start Game" button to initiate the game. +- Displays math problems for the player to solve. +- Enter your answer in the input box and click the "Submit" button. +- If the answer is correct, the screen flashes green, and your score increases by one. +- If the answer is incorrect, the screen flashes red, and the next problem is presented. +- The end screen displays your final score and provides a "Play Again" button. + +
+ +## **How to play? 🕹️** + +1. Click the "Start Game" button to initiate the game. +2. A math problem is displayed on the screen. Enter your answer in the input box. Click the "Submit" button to check your answer. +3. The game timer starts at 30 seconds and ends at 0. +4. When the game ends, your final score is displayed on the end screen. Click the "Play Again" button to restart the game. + + +
+ +## **Screenshots 📸** + +![image](https://github.com/AaryanManghnani/GameZone/blob/QuickMath/assets/images/Quick_Math.png) + + +
diff --git a/Games/Quick_Math/index.html b/Games/Quick_Math/index.html new file mode 100644 index 0000000000..a2038e5b41 --- /dev/null +++ b/Games/Quick_Math/index.html @@ -0,0 +1,32 @@ + + + + + + Math Game + + + + + + + + + + + + \ No newline at end of file diff --git a/Games/Quick_Math/script.js b/Games/Quick_Math/script.js new file mode 100644 index 0000000000..ac128f7c98 --- /dev/null +++ b/Games/Quick_Math/script.js @@ -0,0 +1,83 @@ +let score = 0; +let currentProblem = null; +let timer; +const GAME_DURATION = 30; // in seconds + +function startGame() { + score = 0; + document.getElementById('finalScore').textContent = score; // Reset end screen score + document.querySelector('.main-menu').style.display = 'none'; + document.querySelector('.end-screen').style.display = 'none'; + document.querySelector('.game-container').style.display = 'block'; + document.getElementById('score').textContent = score; + document.getElementById('submitBtn').disabled = false; + document.getElementById('playAgainBtn').disabled = true; + document.getElementById('timerDisplay').style.display = 'block'; + nextProblem(); + startTimer(); +} + +function nextProblem() { + currentProblem = generateProblem(); + document.getElementById('problem').textContent = currentProblem.question; +} + +function generateProblem() { + let num1 = Math.floor(Math.random() * 10) + 1; + let num2 = Math.floor(Math.random() * 10) + 1; + return { question: `${num1} + ${num2}`, answer: num1 + num2 }; +} + +function checkAnswer() { + let userAnswer = parseInt(document.getElementById('answer').value); + if (userAnswer === currentProblem.answer) { + score++; + document.getElementById('score').textContent = score; + flashScreen('green'); + } else { + flashScreen('red'); + } + nextProblem(); + document.getElementById('answer').value = ''; +} + +function flashScreen(color) { + document.body.style.backgroundColor = color; + setTimeout(() => { + document.body.style.backgroundColor = '#f8f9fa'; // Reset background color + }, 200); +} + +function startTimer() { + let timeLeft = GAME_DURATION; + updateTimerDisplay(timeLeft); + + timer = setInterval(() => { + timeLeft--; + updateTimerDisplay(timeLeft); + + if (timeLeft === 0) { + endGame(); + } + }, 1000); +} + +function updateTimerDisplay(time) { + document.getElementById('timer').textContent = time; +} + +function endGame() { + clearInterval(timer); + document.getElementById('submitBtn').disabled = true; + document.querySelector('.game-container').style.display = 'none'; + document.getElementById('finalScore').textContent = score; + document.querySelector('.end-screen').style.display = 'flex'; + document.getElementById('playAgainBtn').disabled = false; +} + +function playAgain() { + score = 0; + document.getElementById('score').textContent = score; + document.querySelector('.end-screen').style.display = 'none'; + document.querySelector('.main-menu').style.display = 'flex'; +} \ No newline at end of file diff --git a/Games/Quick_Math/style.css b/Games/Quick_Math/style.css new file mode 100644 index 0000000000..f1602409e1 --- /dev/null +++ b/Games/Quick_Math/style.css @@ -0,0 +1,114 @@ +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + margin: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background-color: #f8f9fa; +} + +.main-menu, .game-container, .end-screen { + text-align: center; +} + +.main-menu { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: #ffffff; +} + +.main-menu h1 { + font-size: 3rem; + margin-bottom: 20px; + color: #333; +} + +.main-menu button { + padding: 15px 30px; + font-size: 1.5rem; + background-color: #4CAF50; + color: #ffffff; + border: none; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.main-menu button:hover { + background-color: #45a049; +} + +.container { + background-color: #ffffff; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + max-width: 400px; + color: #333; +} + +.container h1 { + color: #4CAF50; +} + +.container input[type="number"] { + padding: 10px; + width: 200px; + margin-top: 10px; + border: 1px solid #ccc; + border-radius: 5px; + color: #333; +} + +.container button { + padding: 10px 20px; + margin-top: 10px; + cursor: pointer; + background-color: #4CAF50; + color: white; + border: none; + border-radius: 5px; + transition: background-color 0.3s ease; +} + +.container button:hover { + background-color: #45a049; +} + +.end-screen { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: #ffffff; +} + +.end-screen h1 { + font-size: 3rem; + margin-bottom: 20px; + color: #333; +} + +.end-screen p { + font-size: 1.5rem; + margin-bottom: 20px; + color: #333; +} + +.end-screen button { + padding: 15px 30px; + font-size: 1.5rem; + background-color: #4CAF50; + color: #ffffff; + border: none; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.end-screen button:hover { + background-color: #45a049; +} \ No newline at end of file diff --git a/Games/Riddle_game/index.html b/Games/Riddle_game/index.html new file mode 100644 index 0000000000..567aeb05c6 --- /dev/null +++ b/Games/Riddle_game/index.html @@ -0,0 +1,19 @@ + + + + + + Riddle Game + + + +
+

Riddle Game

+

+ + +

+
+ + + diff --git a/Games/Riddle_game/script.js b/Games/Riddle_game/script.js new file mode 100644 index 0000000000..edfa5aa2c6 --- /dev/null +++ b/Games/Riddle_game/script.js @@ -0,0 +1,59 @@ +const riddles = [ + { + question: "I speak without a mouth and hear without ears. I have no body, but I come alive with wind. What am I?", + answer: "echo" + }, + { + question: "You measure my life in hours and I serve you by expiring. I die once I'm devoured. What am I?", + answer: "candle" + }, + { + question: "I have cities, but no houses. I have mountains, but no trees. I have water, but no fish. What am I?", + answer: "map" + }, + { + question: "What is seen in the middle of March and April that can’t be seen at the beginning or end of either month?", + answer: "r" + }, + { + question: "You see a boat filled with people, yet there isn’t a single person on board. How is that possible?", + answer: "all the people were married" + }, + { + question: "What word in the English language does the following: the first two letters signify a male, the first three letters signify a female, the first four letters signify a great, while the entire world signifies a great woman. What is the word?", + answer: "heroine" + }, + { + question: "I have keys but can’t open locks. I have space but no room. You can enter, but can’t go outside. What am I?", + answer: "keyboard" + }, + { + question: "What has many hearts but no other organs?", + answer: "deck of cards" + }, + { + question: "The more of this there is, the less you see. What is it?", + answer: "darkness" + }, + { + question: "What can travel around the world while staying in a corner?", + answer: "stamp" + } +]; + +let currentRiddle = riddles[Math.floor(Math.random() * riddles.length)]; + +document.getElementById("riddle").textContent = currentRiddle.question; + +function checkAnswer() { + const userAnswer = document.getElementById("answer").value.trim().toLowerCase(); + const result = document.getElementById("result"); + + if (userAnswer === currentRiddle.answer.toLowerCase()) { + result.textContent = "Correct! Well done!"; + result.style.color = "green"; + } else { + result.textContent = "Wrong answer. Try again!"; + result.style.color = "red"; + } +} diff --git a/Games/Riddle_game/style.css b/Games/Riddle_game/style.css new file mode 100644 index 0000000000..21c463ffb1 --- /dev/null +++ b/Games/Riddle_game/style.css @@ -0,0 +1,52 @@ +body { + font-family: Arial, sans-serif; + background-color: #f0f0f0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; +} + +.container { + background-color: #fff; + padding: 20px; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + text-align: center; +} + +h1 { + margin-bottom: 20px; +} + +#riddle { + font-size: 1.2em; + margin-bottom: 20px; +} + +#answer { + padding: 10px; + width: 80%; + margin-bottom: 20px; +} + +button { + padding: 10px 20px; + font-size: 1em; + cursor: pointer; + border: none; + background-color: #007BFF; + color: white; + border-radius: 5px; + transition: background-color 0.3s; +} + +button:hover { + background-color: #0056b3; +} + +#result { + margin-top: 20px; + font-size: 1.2em; +} diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/README.md b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/README.md new file mode 100644 index 0000000000..dc1ccbe704 --- /dev/null +++ b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/README.md @@ -0,0 +1,59 @@ +# **Rock Paper Scissors Lizard Spock Game** + +--- + +
+ +## **Description 📃** +Rock, Paper, Scissors, Lizard, Spock is a game of chance that expands the traditional game of Rock, Paper, Scissors and was invented by Sam Kass and Karen Bryla. It was brought to fame after being used to settle a dispute about what to watch on TV between Sheldon and Raj in episode "The Lizard-Spock Expansion" in the famous show "The Big Bang Theory". +- +
+ +## **functionalities 🎮** +1. Player vs. Computer gameplay +2. Five choices: Rock, Paper, Scissors, Lizard, Spock +3. Random computer move generation +4. Score tracking for both player and computer +5. Game reset option after completion +6. Responsive UI with animated buttons +7. Rules explanation available on demand +- +
+ +## **How to play? 🕹️** +Simply click on the option which you'll like to choose, the computer will make a random move and the winner will be declared. Whoever reaches 5 points first, WINS!! + +# Rules 📝 +1. Scissors cuts Paper +2. Paper covers Rock +3. Rock crushes Lizard +4. Lizard poisons Spock +5. Spock smashes Scissors +6. Scissors decapitates Lizard +7. Lizard eats Paper +8. Paper disproves Spock +9. Spock vaporizes Rock +10. (and as it always has) Rock crushes Scissors + +![Rules](https://static.wikia.nocookie.net/bigbangtheory/images/7/7d/RPSLS.png/revision/latest?cb=20120822205915) +- + +
+ +## **Screenshots 📸** + +
+ +![Screenshots](./img/ss1.PNG) + +![Screenshot2](./img/ss2.PNG) + +![Screenshot3](./img/ss3.PNG) + +![Screenshot4](./img/ss4.PNG) + +
+ +## **Working video 📹** + +[Watch Video](./path/to/your/video.mp4) \ No newline at end of file diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/RPSLS-Title.png b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/RPSLS-Title.png new file mode 100644 index 0000000000..729dba1842 Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/RPSLS-Title.png differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss1.PNG b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss1.PNG new file mode 100644 index 0000000000..23cf347df9 Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss1.PNG differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss2.PNG b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss2.PNG new file mode 100644 index 0000000000..7b8fc57cc8 Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss2.PNG differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss3.PNG b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss3.PNG new file mode 100644 index 0000000000..90cac9d3a6 Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss3.PNG differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss4.PNG b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss4.PNG new file mode 100644 index 0000000000..178e62479f Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/ss4.PNG differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/video.mp4 b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/video.mp4 new file mode 100644 index 0000000000..99539335de Binary files /dev/null and b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/img/video.mp4 differ diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/index.html b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/index.html new file mode 100644 index 0000000000..491f9bff06 --- /dev/null +++ b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/index.html @@ -0,0 +1,97 @@ + + + + + + + + + + Rock, Paper, Scissors, Lizard, Spock Game + + + + + + +
+ +

Let's play Rock, Paper, Scissors, Lizard, Spock!

+
+ +
+
+ Rules to the game + +
+ +

You will be playing against the computer.

+

You can choose between Rock, Paper, Scissors, Lizard and Spock.

+

The first one to five points wins.

+ +

Here are the rules to getting a point in the game:

+
    +
  • ✂️ Scissors cuts Paper 📄
  • +
  • 📄 Paper covers Rock 🗿
  • +
  • 🗿 Rock crushes Lizard 🦎
  • +
  • 🦎 Lizard poisons Spock 🖖
  • +
  • 🖖 Spock smashes Scissors ✂️
  • +
  • ✂️ Scissors decapitates Lizard 🦎
  • +
  • 🦎 Lizard eats Paper 📄
  • +
  • 📄 Paper disproves Spock 🖖
  • +
  • 🖖 Spock vaporizes Rock 🗿
  • +
  • (and as it always has) 🗿 Rock crushes Scissors ✂️
  • +
+

+ If the player and computer choose the same option (Ex. Paper and + Paper), then no one gets the point. +

+
+
+
+ + +
+ Player Score: 0 + Computer Score: 0 +
+ + +
+

Choose an option:

+ +
+ + + + + +
+
+ + +
+

+

+ + +
+
+ + + + \ No newline at end of file diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/script.js b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/script.js new file mode 100644 index 0000000000..b0cb58cd55 --- /dev/null +++ b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/script.js @@ -0,0 +1,110 @@ + // Function to generate a random choice for the computer + function getRandomComputerResult() { + const options = ["Rock", "Paper", "Scissors", "Lizard", "Spock"]; + const randomIndex = Math.floor(Math.random() * options.length); + return options[randomIndex]; + } + + // Function to determine if the player has won the round + function hasPlayerWonTheRound(player, computer) { + return ( + (player === "Scissors" && computer === "Paper") || + (player === "Paper" && computer === "Rock") || + (player === "Rock" && computer === "Lizard") || + (player === "Lizard" && computer === "Spock") || + (player === "Spock" && computer === "Scissors") || + (player === "Scissors" && computer === "Lizard") || + (player === "Lizard" && computer === "Paper") || + (player === "Paper" && computer === "Spock") || + (player === "Spock" && computer === "Rock") || + (player === "Rock" && computer === "Scissors") + ); + } + + // Initialize scores + let playerScore = 0; + let computerScore = 0; + + // Function to get the results of a round + function getRoundResults(userOption) { + const computerResult = getRandomComputerResult(); + + if (hasPlayerWonTheRound(userOption, computerResult)) { + playerScore++; + return `Player wins! ${userOption} beats ${computerResult}`; + } else if (computerResult === userOption) { + return `It's a tie! Both chose ${userOption}`; + } else { + computerScore++; + return `Computer wins! ${computerResult} beats ${userOption}`; + } + } + + // Get DOM elements + const playerScoreSpanElement = document.getElementById("player-score"); + const computerScoreSpanElement = document.getElementById("computer-score"); + const roundResultsMsg = document.getElementById("results-msg"); + const winnerMsgElement = document.getElementById("winner-msg"); + const optionsContainer = document.querySelector(".options-container"); + const resetGameBtn = document.getElementById("reset-game-btn"); + + // Function to display results and check for game end + function showResults(userOption) { + roundResultsMsg.innerText = getRoundResults(userOption); + computerScoreSpanElement.innerText = computerScore; + playerScoreSpanElement.innerText = playerScore; + + // Check if game has ended (first to 5 points) + if (playerScore === 5 || computerScore === 5) { + winnerMsgElement.innerText = `${ + playerScore === 5 ? "Player" : "Computer" + } has won the game!`; + + resetGameBtn.style.display = "block"; + optionsContainer.style.display = "none"; + } + + }; + + // Function to reset the game + function resetGame() { + playerScore = 0; + computerScore = 0; + playerScoreSpanElement.innerText = playerScore; + computerScoreSpanElement.innerText = computerScore; + resetGameBtn.style.display = "none"; + optionsContainer.style.display = "block"; + winnerMsgElement.innerText = ""; + roundResultsMsg.innerText = ""; + }; + + // Add event listener to reset button + resetGameBtn.addEventListener("click", resetGame); + + // Get button elements + const rockBtn = document.getElementById("rock-btn"); + const paperBtn = document.getElementById("paper-btn"); + const scissorsBtn = document.getElementById("scissors-btn"); + const lizardBtn = document.getElementById("lizard-btn"); + const spockBtn = document.getElementById("spock-btn"); + + // Add event listeners to game option buttons + rockBtn.addEventListener("click", function () { + showResults("Rock"); + }); + + paperBtn.addEventListener("click", function () { + showResults("Paper"); + }); + + scissorsBtn.addEventListener("click", function () { + showResults("Scissors"); + }); + + lizardBtn.addEventListener("click", function () { + showResults("Lizard"); + }); + + spockBtn.addEventListener("click", function () { + showResults("Spock"); + }); \ No newline at end of file diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/styles.css b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/styles.css new file mode 100644 index 0000000000..860dadd32f --- /dev/null +++ b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/styles.css @@ -0,0 +1,20 @@ +/* Define keyframes for gradient animation */ +@keyframes gradient-animation { + 0% { background-position: 0% 50%; } /* Start position */ + 50% { background-position: 100% 50%; } /* Middle position */ + 100% { background-position: 0% 50%; } /* End position (same as start) */ +} + +/* Gradient animation on hover */ +.animate-gradient:hover { + animation: gradient-animation 3s ease infinite; /* Apply the animation */ + background-size: 200% 200%; /* Increase background size for smoother animation */ +} + +/* Animated gradient border */ +.animate-gradient-border { + /* Create a multi-color gradient background */ + background: linear-gradient(60deg, #3b82f6, #8b5cf6, #ef4444, #3b82f6); + background-size: 300% 300%; /* Increase background size for smoother animation */ + animation: gradient-animation 5s ease infinite; /* Apply the animation */ +} \ No newline at end of file diff --git a/Games/Rock_Paper_Scissors_Lizard_Spock_Game/tailwind.config.js b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/tailwind.config.js new file mode 100644 index 0000000000..5e66675cde --- /dev/null +++ b/Games/Rock_Paper_Scissors_Lizard_Spock_Game/tailwind.config.js @@ -0,0 +1,13 @@ +module.exports = { + theme: { + extend: { + colors: { + brown: { + 500: '#8B4513', + 600: '#7A3C12', + 700: '#693511', + } + } + } + } + } \ No newline at end of file diff --git a/Games/Rocket_Ride/README.md b/Games/Rocket_Ride/README.md new file mode 100644 index 0000000000..33669b51a1 --- /dev/null +++ b/Games/Rocket_Ride/README.md @@ -0,0 +1,32 @@ +# Rocket Ride + +## Description + +Rocket Ride is an exciting space-themed game where players control a rocket, dodging obstacles and collecting power-ups. Navigate through increasingly challenging terrain, manage your fuel, and aim for the highest score! + +## Features + +- Smooth, responsive rocket control +- Randomly generated obstacles +- Power-ups: fuel and score boosts +- Progressive difficulty +- High score tracking +- Parallax star background +- Frame-independent game logic + +## How to Play + +1. Open `index.html` in a modern web browser +2. Click "Start Game" on the title screen +3. Use ↑ and ↓ arrow keys to move the rocket +4. Avoid white obstacles +5. Collect green (fuel) and gold (score) power-ups +6. Survive as long as possible! + +## Installation + +No installation required. Simply clone the repository and open `index.html`: + +## Screenshots + +![image](https://github.com/user-attachments/assets/4676aa85-1c70-4ed2-8121-c4ddac562fbe) \ No newline at end of file diff --git a/Games/Rocket_Ride/index.html b/Games/Rocket_Ride/index.html new file mode 100644 index 0000000000..eee330bdc9 --- /dev/null +++ b/Games/Rocket_Ride/index.html @@ -0,0 +1,33 @@ + + + + + + Advanced Rocket Game + + + +
+ +
+
Score: 0
+
High Score: 0
+
Fuel: 100%
+
+
+

Game Over

+

Your Score:

+ +
+
+

Rocket Adventure

+ +
+

Use ↑ and ↓ arrows to move

+

Collect fuel cells and avoid obstacles

+
+
+
+ + + \ No newline at end of file diff --git a/Games/Rocket_Ride/script.js b/Games/Rocket_Ride/script.js new file mode 100644 index 0000000000..8fae94654e --- /dev/null +++ b/Games/Rocket_Ride/script.js @@ -0,0 +1,298 @@ +const canvas = document.getElementById('gameCanvas'); +const ctx = canvas.getContext('2d'); +canvas.width = 800; +canvas.height = 600; + +const gameOverScreen = document.getElementById('gameOver'); +const startScreen = document.getElementById('startScreen'); +const scoreDisplay = document.getElementById('score'); +const highScoreDisplay = document.getElementById('highScore'); +const fuelDisplay = document.getElementById('fuel'); +const finalScoreDisplay = document.getElementById('finalScore'); +const restartButton = document.getElementById('restartButton'); +const startButton = document.getElementById('startButton'); + +let rocket, obstacles, powerUps, stars; +let score, highScore, fuel; +let obstacleSpeed, powerUpSpeed, obstacleInterval; +let gameRunning = false; +let lastTime = 0; +let keys = {}; +const SPEED = 300; // pixels per second + +class GameObject { + constructor(x, y, width, height, color) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.color = color; + } + + draw() { + ctx.fillStyle = this.color; + ctx.fillRect(this.x, this.y, this.width, this.height); + } +} + +class Rocket extends GameObject { + constructor(x, y) { + super(x, y, 30, 60, 'red'); + } + + draw() { + ctx.fillStyle = this.color; + ctx.beginPath(); + ctx.moveTo(this.x, this.y + this.height); + ctx.lineTo(this.x + this.width / 2, this.y); + ctx.lineTo(this.x + this.width, this.y + this.height); + ctx.closePath(); + ctx.fill(); + + // Draw flames + ctx.fillStyle = 'orange'; + ctx.beginPath(); + ctx.moveTo(this.x, this.y + this.height); + ctx.lineTo(this.x + this.width / 2, this.y + this.height + 20); + ctx.lineTo(this.x + this.width, this.y + this.height); + ctx.closePath(); + ctx.fill(); + } +} + +class Obstacle extends GameObject { + constructor(x, y, width, height) { + super(x, y, width, height, 'white'); + this.type = Math.random() < 0.3 ? 'moving' : 'static'; + this.direction = Math.random() < 0.5 ? 1 : -1; + this.speed = Math.random() * 2 + 1; + } + + update(deltaTime) { + this.x -= obstacleSpeed * deltaTime; + if (this.type === 'moving') { + this.y += this.speed * this.direction * deltaTime; + if (this.y <= 0 || this.y + this.height >= canvas.height) { + this.direction *= -1; + } + } + } +} + +class PowerUp extends GameObject { + constructor(x, y) { + super(x, y, 20, 20, 'yellow'); + this.type = Math.random() < 0.3 ? 'fuel' : 'score'; + } + + update(deltaTime) { + this.x -= powerUpSpeed * deltaTime; + } + + draw() { + ctx.fillStyle = this.type === 'fuel' ? 'green' : 'gold'; + ctx.beginPath(); + ctx.arc(this.x + this.width / 2, this.y + this.height / 2, this.width / 2, 0, Math.PI * 2); + ctx.fill(); + } +} + +class Star { + constructor() { + this.x = Math.random() * canvas.width; + this.y = Math.random() * canvas.height; + this.size = Math.random() * 2 + 1; + this.speed = Math.random() * 3 + 1; + } + + update(deltaTime) { + this.x -= this.speed * deltaTime; + if (this.x < 0) { + this.x = canvas.width; + this.y = Math.random() * canvas.height; + } + } + + draw() { + ctx.fillStyle = 'white'; + ctx.beginPath(); + ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2); + ctx.fill(); + } +} + +function initGame() { + rocket = new Rocket(50, canvas.height / 2); + obstacles = []; + powerUps = []; + stars = Array(100).fill().map(() => new Star()); + score = 0; + fuel = 100; + obstacleSpeed = 200; // pixels per second + powerUpSpeed = 150; // pixels per second + obstacleInterval = 1500; +} + +function drawBackground() { + ctx.fillStyle = '#000020'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + stars.forEach(star => { + star.draw(); + }); +} + +function updateGame(currentTime) { + if (!gameRunning) return; + + const deltaTime = (currentTime - lastTime) / 1000; // Convert to seconds + lastTime = currentTime; + + ctx.clearRect(0, 0, canvas.width, canvas.height); + drawBackground(); + + // Handle rocket movement + if (keys['ArrowUp']) { + rocket.y = Math.max(rocket.y - SPEED * deltaTime, 0); + } + if (keys['ArrowDown']) { + rocket.y = Math.min(rocket.y + SPEED * deltaTime, canvas.height - rocket.height); + } + + rocket.draw(); + + stars.forEach(star => star.update(deltaTime)); + + obstacles.forEach(obstacle => { + obstacle.update(deltaTime); + obstacle.draw(); + }); + powerUps.forEach(powerUp => { + powerUp.update(deltaTime); + powerUp.draw(); + }); + + // Remove off-screen obstacles and power-ups + obstacles = obstacles.filter(obstacle => obstacle.x + obstacle.width > 0); + powerUps = powerUps.filter(powerUp => powerUp.x + powerUp.width > 0); + + // Check collisions + if (checkCollisions()) { + endGame(); + return; + } + + // Update score and fuel + score += Math.floor(50 * deltaTime); + fuel = Math.max(fuel - 5 * deltaTime, 0); + if (fuel <= 0) { + endGame(); + return; + } + + // Update UI + scoreDisplay.textContent = `Score: ${score}`; + fuelDisplay.textContent = `Fuel: ${Math.round(fuel)}%`; + + // Increase difficulty + if (score % 500 === 0 && score > 0) { + obstacleSpeed += 10; + powerUpSpeed += 5; + obstacleInterval = Math.max(obstacleInterval - 100, 500); + } + + requestAnimationFrame(updateGame); +} + +function checkCollisions() { + // Check obstacle collisions + for (let obstacle of obstacles) { + if ( + rocket.x < obstacle.x + obstacle.width && + rocket.x + rocket.width > obstacle.x && + rocket.y < obstacle.y + obstacle.height && + rocket.y + rocket.height > obstacle.y + ) { + return true; + } + } + + // Check power-up collisions + powerUps = powerUps.filter(powerUp => { + if ( + rocket.x < powerUp.x + powerUp.width && + rocket.x + rocket.width > powerUp.x && + rocket.y < powerUp.y + powerUp.height && + rocket.y + rocket.height > powerUp.y + ) { + if (powerUp.type === 'fuel') { + fuel = Math.min(fuel + 20, 100); + } else { + score += 100; + } + return false; + } + return true; + }); + + return false; +} + +function createObstacle() { + if (!gameRunning) return; + + const minHeight = 50; + const maxHeight = 200; + const height = Math.floor(Math.random() * (maxHeight - minHeight + 1) + minHeight); + const y = Math.floor(Math.random() * (canvas.height - height)); + + obstacles.push(new Obstacle(canvas.width, y, 30, height)); +} + +function createPowerUp() { + if (!gameRunning) return; + + const y = Math.floor(Math.random() * (canvas.height - 20)); + powerUps.push(new PowerUp(canvas.width, y)); +} + +function startGame() { + initGame(); + gameRunning = true; + startScreen.style.display = 'none'; + gameOverScreen.style.display = 'none'; + lastTime = performance.now(); + requestAnimationFrame(updateGame); + setInterval(createObstacle, obstacleInterval); + setInterval(createPowerUp, 3000); +} + +function endGame() { + gameRunning = false; + finalScoreDisplay.textContent = score; + gameOverScreen.style.display = 'block'; + + if (score > highScore) { + highScore = score; + highScoreDisplay.textContent = `High Score: ${highScore}`; + localStorage.setItem('highScore', highScore); + } +} + +// Event listeners +document.addEventListener('keydown', (event) => { + keys[event.key] = true; +}); + +document.addEventListener('keyup', (event) => { + keys[event.key] = false; +}); + +restartButton.addEventListener('click', startGame); +startButton.addEventListener('click', startGame); + +// Load high score from local storage +highScore = localStorage.getItem('highScore') || 0; +highScoreDisplay.textContent = `High Score: ${highScore}`; + +// Show start screen +startScreen.style.display = 'block'; \ No newline at end of file diff --git a/Games/Rocket_Ride/style.css b/Games/Rocket_Ride/style.css new file mode 100644 index 0000000000..e0ed26254a --- /dev/null +++ b/Games/Rocket_Ride/style.css @@ -0,0 +1,65 @@ +body { + margin: 0; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background-color: #000033; + font-family: Arial, sans-serif; + color: white; +} + +#gameContainer { + position: relative; + width: 800px; + height: 600px; +} + +#gameCanvas { + border: 2px solid white; + background-color: #000020; +} + +#uiOverlay { + position: absolute; + top: 10px; + left: 10px; + font-size: 18px; +} + +#uiOverlay > div { + margin-bottom: 5px; +} + +#gameOver, #startScreen { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + background-color: rgba(0, 0, 0, 0.8); + padding: 20px; + border-radius: 10px; + display: none; +} + +button { + font-size: 18px; + padding: 10px 20px; + margin-top: 20px; + cursor: pointer; + background-color: #4CAF50; + color: white; + border: none; + border-radius: 5px; +} + +button:hover { + background-color: #45a049; +} + +#instructions { + margin-top: 20px; + font-size: 14px; +} \ No newline at end of file diff --git a/Games/Simon_Game_Challenge/index.html b/Games/Simon_Game_Challenge/index.html index 938baf3125..a438c557de 100755 --- a/Games/Simon_Game_Challenge/index.html +++ b/Games/Simon_Game_Challenge/index.html @@ -5,6 +5,7 @@ + Simon diff --git a/Games/Subway_Surfers/README.md b/Games/Subway_Surfers/README.md new file mode 100644 index 0000000000..65cad9c37d --- /dev/null +++ b/Games/Subway_Surfers/README.md @@ -0,0 +1,65 @@ +# Subway Surfers GG Script + +## Overview + +The Subway Surfers GG Script is a user-friendly browser extension designed to enhance your Subway Surfers gaming experience. This script allows you to modify in-game resources and unlock features with ease. The functionalities include modifying coins, modifying keys, and unlocking all characters, providing you with unlimited access to the game’s content. + +## Features + +### Modify Coins +- **Description**: Change your current coin count to a specified amount. +- **Usage**: Input your current number of coins, and the script will set the coin count to a high value (e.g., 999,999). + +### Modify Keys +- **Description**: Change your current key count to a specified amount. +- **Usage**: Input your current number of keys, and the script will set the key count to a high value (e.g., 9,999). + +### Unlock All Characters +- **Description**: Instantly unlock all characters in the game. +- **Usage**: Allows access to all characters without needing to unlock them sequentially. + +## Installation + +1. Clone or download the repository. +2. Open your browser and navigate to the extensions page. +3. Enable "Developer mode". +4. Click "Load unpacked" and select the directory containing the downloaded files. + +## Usage + +1. Open the extension by clicking on the Subway Surfers GG Script icon in your browser. +2. Choose the desired option: + - **Modify Coins**: Enter your current amount of coins when prompted. + - **Modify Keys**: Enter your current amount of keys when prompted. + - **Unlock All Characters**: Click to unlock all characters instantly. +3. Follow the prompts and alerts to complete the modifications. + +## Files + +### `index.html` + +The HTML file providing the structure of the user interface. + +### `styles.css` + +The CSS file for styling the user interface. + +### `script.js` + +The JavaScript file containing the functionality for modifying the game’s resources. + +### `manifest.json` + +The manifest file required for the browser extension, specifying metadata and permissions. + +## Contributing + +Contributions are welcome! Please feel free to submit a pull request. + +## License + +This project is for educational purposes only. Use at your own risk. + +--- + +By using this script, you acknowledge that it is for educational purposes only and should not be used to cheat in the game. diff --git a/Games/Subway_Surfers/index.html b/Games/Subway_Surfers/index.html new file mode 100644 index 0000000000..3d4632c549 --- /dev/null +++ b/Games/Subway_Surfers/index.html @@ -0,0 +1,17 @@ + + + + + + Subway Surfers GG Script + + + +

Subway Surfers GG Script

+ + + + + + + diff --git a/Games/Subway_Surfers/manifest.json b/Games/Subway_Surfers/manifest.json new file mode 100644 index 0000000000..17068f8b34 --- /dev/null +++ b/Games/Subway_Surfers/manifest.json @@ -0,0 +1,17 @@ +{ + "manifest_version": 2, + "name": "Subway Surfers GG Script", + "version": "1.0", + "description": "A script to modify coins, keys, and unlock characters in Subway Surfers for educational purposes.", + "icons": { + "48": "icon.png" + }, + "browser_action": { + "default_popup": "index.html", + "default_icon": "icon.png" + }, + "permissions": [ + "activeTab" + ] + } + \ No newline at end of file diff --git a/Games/Subway_Surfers/script.js b/Games/Subway_Surfers/script.js new file mode 100644 index 0000000000..13bc3e5c7e --- /dev/null +++ b/Games/Subway_Surfers/script.js @@ -0,0 +1,56 @@ +// Function to modify coins +function modifyCoins() { + let coins = prompt("Enter your current amount of coins:"); + coins = parseInt(coins); + if (isNaN(coins)) { + alert("Invalid number. Please try again."); + return; + } + let newCoins = 999999; + alert(`Coins modified successfully to ${newCoins}!`); + } + + // Function to modify keys + function modifyKeys() { + let keys = prompt("Enter your current amount of keys:"); + keys = parseInt(keys); + if (isNaN(keys)) { + alert("Invalid number. Please try again."); + return; + } + let newKeys = 9999; + alert(`Keys modified successfully to ${newKeys}!`); + } + + // Function to unlock all characters + function unlockAllCharacters() { + alert("All characters unlocked!"); + } + + // Function to handle button clicks + function handleButtonClick(event) { + const buttonId = event.target.id; + switch (buttonId) { + case "modify-coins": + modifyCoins(); + break; + case "modify-keys": + modifyKeys(); + break; + case "unlock-characters": + unlockAllCharacters(); + break; + case "exit": + alert("Exiting script..."); + break; + default: + break; + } + } + + // Add event listeners to buttons + document.getElementById("modify-coins").addEventListener("click", handleButtonClick); + document.getElementById("modify-keys").addEventListener("click", handleButtonClick); + document.getElementById("unlock-characters").addEventListener("click", handleButtonClick); + document.getElementById("exit").addEventListener("click", handleButtonClick); + \ No newline at end of file diff --git a/Games/Subway_Surfers/styles.css b/Games/Subway_Surfers/styles.css new file mode 100644 index 0000000000..ae365627e9 --- /dev/null +++ b/Games/Subway_Surfers/styles.css @@ -0,0 +1,21 @@ +body { + font-family: Arial, sans-serif; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; + background-color: #f0f0f0; + } + + button { + margin: 10px; + padding: 10px 20px; + font-size: 16px; + cursor: pointer; + } + + h1 { + margin-bottom: 20px; + } + \ No newline at end of file diff --git a/Games/WordChain/assets/Screencast from 2024-07-22 16-29-11.webm b/Games/WordChain/assets/Screencast from 2024-07-22 16-29-11.webm new file mode 100644 index 0000000000..9b3fa9d56c Binary files /dev/null and b/Games/WordChain/assets/Screencast from 2024-07-22 16-29-11.webm differ diff --git a/Games/WordChain/assets/Screenshot from 2024-07-22 16-29-53.png b/Games/WordChain/assets/Screenshot from 2024-07-22 16-29-53.png new file mode 100644 index 0000000000..2085e3e1db Binary files /dev/null and b/Games/WordChain/assets/Screenshot from 2024-07-22 16-29-53.png differ diff --git a/Games/WordChain/index.html b/Games/WordChain/index.html index 18e1db71f9..6b560d67e0 100644 --- a/Games/WordChain/index.html +++ b/Games/WordChain/index.html @@ -5,6 +5,10 @@ +
+

Hello Welcome to Word Chain Game

+

Check your Score..🚀

+

diff --git a/Games/WordChain/script.js b/Games/WordChain/script.js index ace41e223c..3ddea2e280 100644 --- a/Games/WordChain/script.js +++ b/Games/WordChain/script.js @@ -2,70 +2,71 @@ let timelimit = 30; let time = 0; var threading; -let previousWord = ''; -const wordList = document.getElementById('word-list'); -const message = document.getElementById('message'); +let previousWord = ""; +const wordList = document.getElementById("word-list"); +const message = document.getElementById("message"); let score = 0; - - +setTimeout(()=>{ + let Intro_page=document.getElementById('Intro_page') + Intro_page.style.transform="translateX(-100%)" +},3000) function playTurn() { - const inputWord = document.getElementById('input-word').value; - clearInterval(threading); - threading=setInterval(function() { + const inputWord = document.getElementById("input-word").value; + clearInterval(threading); + threading = setInterval(function () { time += 0.01; - if(time>=timelimit) - { - clearInterval(threading); - document.getElementById("countdown").innerHTML = ""; - message.textContent = `Game Over! Your score is ${score}.`; - } - else - document.getElementById("countdown").innerHTML=time.toPrecision(4); -}, 10); - if (inputWord === '') { - message.textContent = 'Please enter a word.'; + if (time >= timelimit) { + clearInterval(threading); + document.getElementById("countdown").innerHTML = ""; + message.textContent = `Game Over! Your score is ${score}.`; + } else document.getElementById("countdown").innerHTML = time.toPrecision(4); + }, 10); + if (inputWord === "") { + message.textContent = "Please enter a word."; return; } - - if (previousWord === '') { + + if (previousWord === "") { previousWord = inputWord; addWordToList(inputWord); - document.getElementById('input-word').value = ''; - message.textContent = ''; + document.getElementById("input-word").value = ""; + message.textContent = ""; } else { const lastChar = previousWord.charAt(previousWord.length - 1); const firstChar = inputWord.charAt(0); if (lastChar.toLowerCase() === firstChar.toLowerCase()) { - score++; previousWord = inputWord; addWordToList(inputWord); - document.getElementById('input-word').value = ''; - message.textContent = ''; + document.getElementById("input-word").value = ""; + message.textContent = ""; } else { // clearInterval(threading); + score=`${(100 - time)/10}` + console.log(time,score) document.getElementById("countdown").innerHTML = ""; - time = 0; clearInterval(threading); document.getElementById("countdown").innerHTML = ""; - message.textContent = `Game Over! Your score is ${score}.`; + message.textContent = `Game Over! Your score is ${score.slice(0,4)}`; + time = 0; + score=0 } } } function addWordToList(word) { - const listItem = document.createElement('li'); + const listItem = document.createElement("li"); listItem.textContent = word; wordList.appendChild(listItem); } -function restart(){ - time=0; - previousWord = ''; - wordList.innerHTML = ''; - document.getElementById('input-word').value = ''; - message.textContent = ''; +function restart() { + time = 0; + previousWord = ""; + wordList.innerHTML = ""; + document.getElementById("input-word").value = ""; + message.textContent = ""; score = 0; document.getElementById("countdown").innerHTML = ""; clearInterval(threading); //document.getElementById('word-list').style.display = 'none'; -} \ No newline at end of file +} diff --git a/Games/WordChain/style.css b/Games/WordChain/style.css index 0ac1138e35..6947b4d378 100644 --- a/Games/WordChain/style.css +++ b/Games/WordChain/style.css @@ -1,5 +1,14 @@ +*{ + padding: 0; + margin: 0; +} body { text-align: center; + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; } h1 { @@ -14,7 +23,22 @@ body { padding: 5px; font-size: 16px; } - +#Intro_page{ + position: fixed; + width: 100%; + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + background: black; + transition: 0.3s ease-in; + flex-direction: column; +} +#Intro_page h1, #Intro_page h2{ + color: white; + font-family: monospace; + font-size: 2.2rem; +} #input-word { margin-top: 0px; margin-bottom: 10px; @@ -28,6 +52,7 @@ body { #message { color: #6b2222; font-weight: bold; + margin: 1rem 0; margin-right: 4%; font-weight: bolder; font-family: cursive; @@ -104,4 +129,4 @@ body { img{ margin-right: 8%; -} \ No newline at end of file +} diff --git a/Games/detona-ralph b/Games/detona-ralph new file mode 160000 index 0000000000..ad4688257a --- /dev/null +++ b/Games/detona-ralph @@ -0,0 +1 @@ +Subproject commit ad4688257a9a341a1d073d4a47b330998304ab54 diff --git a/README.md b/README.md index 60a78bbf0e..fcb6631017 100644 --- a/README.md +++ b/README.md @@ -107,11 +107,12 @@ This repository also provides one such platforms where contributers come over an -| Game | Game | Game | Game | Game -| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | --- | -|[Block Dodger](https://github.com/kunjgit/GameZone/tree/main/Games/Block_Dodger) | [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) | | + +| [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) | [Madlibs](https://github.com/AaryanManghnani/GameZone/tree/main/Games/Madlibs) | +| [Bulls_And_Cows_New](https://github.com/kunjgit/GameZone/tree/main/Games/Bulls_And_Cows_New) +| [Guess_That_Pokemon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_That_Pokemon) | [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) | +| [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) | [Ludo Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ludo_Game) | [Piano Game](https://github.com/kunjgit/GameZone/tree/main/Games/Piano) | [Atari Breakout](https://github.com/kunjgit/GameZone/tree/main/Games/Atari_Breakout) | [Dinosaur Game](https://github.com/kunjgit/GameZone/tree/main/Games/Chrome_Dinosaur_Game) | [Guess The Colour by RGB Game](https://github.com/kunjgit/GameZone/tree/main/Games/Colour_Guessing_Game) | | [Guess The Number](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Number) | [Race car game](https://github.com/kunjgit/GameZone/tree/main/Games/race_car) | [Aim Training](https://github.com/DP-NOTHING/GameZone/tree/contri/Games/Aim_Training) | [Alien Shooter](https://github.com/kunjgit/GameZone/tree/main/Games/Alien_Shooters) | [Fruit Ninja](https://github.com/kunjgit/GameZone/tree/main/Games/Fruit_Ninja) | | [Doodle Jump](https://github.com/kunjgit/GameZone/tree/main/Games/Doodle_Jump) | [Alphabet Game](https://github.com/kunjgit/GameZone/tree/main/Games/Alphabet) | [Candy Crush](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Crush) | [Word Association Game](https://github.com/kunjgit/GameZone/tree/main/Games/Word_Association_Game) | [Tic Tac Toe](https://github.com/kunjgit/GameZone/tree/main/Games/Tic_Tac_Toe) | @@ -189,6 +190,7 @@ This repository also provides one such platforms where contributers come over an | [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [Coloron](https://github.com/kunjgit/GameZone/tree/main/Games/Coloron). | [Black_jackk](https://github.com/kunjgit/GameZone/tree/main/Games/Black_jackk) | [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | | | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | [Pop My Balloon](https://github.com/kunjgit/GameZone/tree/main/Games/Pop_My_Balloon) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [HTML5_Controller_Tester](https://github.com/kunjgit/GameZone/tree/main/Games/HTML5_Controller_Tester) | [escaperoom](https://github.com/kunjgit/GameZone/tree/main/Games/escaperoom) | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [HTML5_Controller_Tester](https://github.com/kunjgit/GameZone/tree/main/Games/HTML5_Controller_Tester) | [Tower Stack](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Stack) |[Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [TriHand_Tactics](https://github.com/kunjgit/GameZone/tree/main/Games/TriHand_Tactics) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | [DoraemonRun ](https://github.com/kunjgit/GameZone/tree/main/Games/DoraemonRun) | [Memory_Cards_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Cards_Game) | [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)| + | [Subway_Surfers](https://github.com/kunjgit/GameZone/tree/main/Games/Subway_Surfers) | [Letter_Sleuth](https://github.com/swetha5157/GameZone/tree/main/Games/Letter_Sleuth) | [Rock_paper_scissor](https://github.com/kunjgit/GameZone/tree/main/Games/Rock_paper_scissor) | [City_Builder_Game](https://github.com/kunjgit/GameZone/tree/main/Games/City_Builder_Game) | [Mancala_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Mancala_Game) | [Knife_hit](https://github.com/kunjgit/GameZone/tree/main/Games/Knife_hit) | | [Dice_Roller](https://github.com/kunjgit/GameZone/tree/main/Games/Dice_Roller) | [Chrome_Dino_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Chrome_Dino_Game) | [Rock_paper_scissor](https://github.com/kunjgit/GameZone/tree/main/Games/Rock_paper_scissor) | [City_Builder_Game](https://github.com/kunjgit/GameZone/tree/main/Games/City_Builder_Game) | [Pokemon_Stats_Card](https://github.com/kunjgit/GameZone/tree/main/Games/Pokemon_Stats_Card) | | [Steampunk_FlappyBird](https://github.com/kunjgit/GameZone/tree/main/Games/Steampunk_FlappyBird) | [Catch_The_Circle](https://github.com/kunjgit/GameZone/tree/main/Games/Catch_The_Circle) | [Automated_rock_paper_scissor](https://github.com/kunjgit/GameZone/tree/main/Games/automated_rock_paper_scissor) | [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [Astronaut_runner](https://github.com/tanishkaa08/GameZone/tree/main/Games/Astronaunt_runner) | @@ -201,12 +203,13 @@ This repository also provides one such platforms where contributers come over an | [Dragon_Tower](https://github.com/kunjgit/GameZone/tree/main/Games/Dragon_Tower) | [Hover_Board_Effect](https://github.com/kunjgit/GameZone/tree/main/Games/Hover_Board_Effect) | [escaperoom](https://github.com/kunjgit/GameZone/tree/main/Games/escaperoom) | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [HTML5_Controller_Tester](https://github.com/kunjgit/GameZone/tree/main/Games/HTML5_Controller_Tester) | [candy_match](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Match_Saga) | [Crossy_Road](https://github.com/tanujbordikar/GameZone/tree/Crossy_Road) | [HueHero](https://github.com/kunjgit/GameZone/tree/main/Games/HueHero) | [Puzzel_Winner](https://github.com/kunjgit/GameZone/tree/main/Games/Puzzel_Winner) | | [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [TriHand_Tactics](https://github.com/kunjgit/GameZone/tree/main/Games/TriHand_Tactics) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | | [Candy_Crush_Saga](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Crush_Saga) | [numeral-whiz](https://github.com/Ishan-77/GameZone/tree/main/Games/numeral-whiz) | [candy_match](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Match_Saga) | [Crossy_Road](https://github.com/tanujbordikar/GameZone/tree/Crossy_Road) | [HueHero](https://github.com/kunjgit/GameZone/tree/main/Games/HueHero) | [Puzzel_Winner](https://github.com/kunjgit/GameZone/tree/main/Games/Puzzel_Winner) | -| [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | [Pop My Balloon](https://github.com/kunjgit/GameZone/tree/main/Games/Pop_My_Balloon) | [Tower Stack](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Stack) | [Sand Tetris](https://github.com/kunjgit/GameZone/tree/main/Games/Sand_Tetris) | - +| [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | [Pop My Balloon](https://github.com/kunjgit/GameZone/tree/main/Games/Pop_My_Balloon) | [Tower Stack](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Stack) | [Sand Tetris](https://github.com/markcosay/GameZone/tree/main/Games/sand_tetris) | | +| [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | [Pop My Balloon](https://github.com/kunjgit/GameZone/tree/main/Games/Pop_My_Balloon) | [Tower Stack](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Stack) | +| [Boom_Blast](https://github.com/kunjgit/GameZone/tree/main/Games/Boom_Blast) | -======= + | Game | Game | Game | Game | Game | @@ -222,7 +225,9 @@ This repository also provides one such platforms where contributers come over an | [Word Scramble Game](https://github.com/kunjgit/GameZone/tree/main/Games/Word_Scramble_Game) | [Tetris](https://github.com/kunjgit/GameZone/tree/main/Games/Tetris) | [Interactive Quizzing Application](https://github.com/kunjgit/GameZone/tree/main/Games/Interactive_Quizzing) | [Planet Defense Game](https://github.com/kunjgit/GameZone/tree/main/Games/Planet_Defense) | [Rabbit Rush Game](https://github.com/kunjgit/GameZone/tree/main/Games/Rabbit_Rush) | | [Wordle](https://github.com/kunjgit/GameZone/tree/main/Games/Wordle) | [Roll Race Game](https://github.com/kunjgit/GameZone/tree/main/Games/Roll_Race) | [Menja Game](https://github.com/kunjgit/GameZone/tree/main/Games/Menja) | [Typing Speed Test Game](https://github.com/kunjgit/GameZone/tree/main/Games/Typing_Speed_Test_Game) | [Tile Game](https://github.com/kunjgit/GameZone/tree/main/Games/Tile_Game) | | [Stick Hero Game](https://github.com/kunjgit/GameZone/tree/main/Games/Stick_Hero_Game) | [Starwars Character Game](https://github.com/kunjgit/GameZone/tree/main/Games/Starwars_Character_Game) | [Traffic Run](https://github.com/kunjgit/GameZone/tree/main/Games/Traffic_Run) | [Love Result Predictor](https://github.com/kunjgit/GameZone/tree/main/Games/Love_Result_Predictor) | [Tower Defense](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Defense) | -| [Menja_block_breaker](https://github.com/kunjgit/GameZone/tree/main/Games/Menja_block_breaker) | | [Yahtzee](https://github.com/kunjgit/GameZone/tree/main/Games/Yahtzee) | + +| [Menja_block_breaker](https://github.com/kunjgit/GameZone/tree/main/Games/Menja_block_breaker) | [Quick_Math](https://github.com/AaryanManghnani/GameZone/tree/QuickMath/Games/Quick_Math) | [Yahtzee](https://github.com/kunjgit/GameZone/tree/main/Games/Yahtzee) | + | [Bird Game](https://github.com/kunjgit/GameZone/tree/main/Games/Bird_game) | [Bubble Blast Game](https://github.com/kunjgit/GameZone/tree/main/Games/Bubble_Blast_Game) | [Emoji Charades](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Charades) | [Drum And Kit](https://github.com/kunjgit/GameZone/tree/main/Games/Drum_Kit_Game) | [Rock Paper Scissors](https://github.com/kunjgit/GameZone/tree/main/Games/Rock_Paper_Scissors) | | [Frogger](https://github.com/kunjgit/GameZone/tree/main/Games/Frogger) | [!morethan5 ](https://github.com/kunjgit/GameZone/tree/main/Games/Not_morethan5) | [Unruly Tower](https://github.com/kunjgit/GameZone/tree/main/Games/Unruly_Tower) | [Maze Game](https://github.com/kunjgit/GameZone/tree/main/Games/MazeGame) | [Connect4](https://github.com/kunjgit/GameZone/tree/main/Games/Connect4) | | [Spelling_Bee](https://github.com/kunjgit/GameZone/tree/main/Games/Spelling_Bee) | [2048](https://github.com/kunjgit/GameZone/tree/main/Games/2048) | [Spin the Wheel](https://github.com/kunjgit/GameZone/tree/main/Games/Spin_the_wheel) | [Breakout](https://github.com/kunjgit/GameZone/tree/main/Games/Breakout) | [Tower Blocks](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Blocks) | @@ -517,32 +522,22 @@ This repository also provides one such platforms where contributers come over an |[Pattern Creation Game](https://github.com/kunjgit/GameZone/tree/main/Games/Pattern_Creation_Game)| [Magic_8_ball_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Magic_8_ball) | | [Catch_Craze](https://github.com/kunjgit/GameZone/tree/main/Games/Catch_Craze) | - - -======= | [Angry_Bird](https://github.com/kunjgit/GameZone/tree/main/Games/Angry_Bird) | - -======= - +| [Subway_Surfers](https://github.com/kunjgit/GameZone/tree/main/Games/Subway_Surfers) | | [UNO game with computer](https://github.com/kunjgit/GameZone/tree/main/Games/UNO_game_with_Computer) | |[Dice_Rolling_Simulator](https://github.com/priyashuu/GameZone/tree/main/Games/Dice_rolling_simulator)| |[Space_Dominators](https://github.com/kunjgit/GameZone/tree/main/Games/Space_Dominators)| | [Simon_Says](https://github.com/kunjgit/GameZone/tree/main/Games/Simon_Says) | |[Idle_miner](https://github.com/kunjgit/GameZone/tree/main/Games/Idle_miner)| |[Five_Nights_at_Freddys](https://github.com/kunjgit/GameZone/tree/main/Games/Five_Nights_at_Freddys)| + |[Matching_Pair](https://github.com/kunjgit/GameZone/tree/main/Games/Matching_pair) |[Otherworldly_Odyssey](./Games/Otherworldly_Odyssey/)| - -======= - - -======= -======= | [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [TriHand_Tactics](https://github.com/kunjgit/GameZone/tree/main/Games/TriHand_Tactics) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | [Colour_Generator_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Colour_Generator_Game) | | [Rock_paper_scissor](https://github.com/kunjgit/GameZone/tree/main/Games/Rock_paper_scissor) | [City_Builder_Game](https://github.com/kunjgit/GameZone/tree/main/Games/City_Builder_Game) | [Mancala_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Mancala_Game) | [2048_win](https://github.com/kunjgit/GameZone/tree/main/Games/2048_win) | [Dice_Roller](https://github.com/kunjgit/GameZone/tree/main/Games/Dice_Roller) | [Chrome_Dino_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Chrome_Dino_Game) | | [Catch_The_Circle](https://github.com/kunjgit/GameZone/tree/main/Games/Catch_The_Circle) | [Shrek_Vs_Wild](https://github.com/kunjgit/GameZone/tree/main/Games/Shrek_Vs_Wild) | [Balloon_Buster](https://github.com/kunjgit/GameZone/tree/main/Games/Balloon_Buster) | [Pokemon_Stats_Card](https://github.com/kunjgit/GameZone/tree/main/Games/Pokemon_Stats_Card) | [Steampunk_FlappyBird](https://github.com/kunjgit/GameZone/tree/main/Games/Steampunk_FlappyBird) | @@ -565,7 +560,8 @@ This repository also provides one such platforms where contributers come over an | [Ultimate_Football_Manager](https://github.com/kunjgit/GameZone/tree/main/Games/Ultimate_Football_Manager) | [Zombie_Shooter](https://github.com/kunjgit/GameZone/tree/main/Games/Zombie_Shooter)| [Ganesh_QR_Maker](https://github.com/kunjgit/GameZone/tree/main/Games/Ganesh_QR_Maker) | [Brain_Card_game](https://github.com/Kunjgit/GameZone/tree/main/Games/Brain_Card_game)| [Wheel_of_Fortunes](https://github.com/kunjgit/GameZone/tree/main/Games/Wheel_of_Fortunes)| |[Samurai_Fighting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Samurai_Fighting_Game)| [Tic-tac-toe](https://github.com/kunjgit/GameZone/tree/main/Games/Tic-tac-toe)| [Quest_For_Riches](https://github.com/kunjgit/GameZone/tree/main/Games/Quest_For_Riches)| [Pattern Creation Game](https://github.com/kunjgit/GameZone/tree/main/Games/Pattern_Creation_Game)| [Magic_8_ball_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Magic_8_ball) | | [Catch_Craze](https://github.com/kunjgit/GameZone/tree/main/Games/Catch_Craze) | [UNO game with computer](https://github.com/kunjgit/GameZone/tree/main/Games/UNO_game_with_Computer) | [Dice_Rolling_Simulator](https://github.com/priyashuu/GameZone/tree/main/Games/Dice_rolling_simulator)| [Space_Dominators](https://github.com/kunjgit/GameZone/tree/main/Games/Space_Dominators)| [Simon_Says](https://github.com/kunjgit/GameZone/tree/main/Games/Simon_Says) | -|[Idle_miner](https://github.com/kunjgit/GameZone/tree/main/Games/Idle_miner)| [Five_Nights_at_Freddys](https://github.com/kunjgit/GameZone/tree/main/Games/Five_Nights_at_Freddys) | [Penalty_Shootout_Game] (https://github.com/kunjgit/GameZone/tree/main/Games/Penalty_Shootout_Game)| +|[Idle_miner](https://github.com/kunjgit/GameZone/tree/main/Games/Idle_miner)| [Five_Nights_at_Freddys](https://github.com/kunjgit/GameZone/tree/main/Games/Five_Nights_at_Freddys) | [Penalty_Shootout_Game] (https://github.com/kunjgit/GameZone/tree/main/Games/Penalty_Shootout_Game)| |[Snake_Gun_Water](https://github.com/kunjgit/GameZone/tree/main/Games/Snake_Gun_Water)| +| [Drum_kit] (https://github.com/kunjgit/GameZone/tree/main/Games/Drum_kit)|

Back to top

@@ -999,9 +995,6 @@ This repository also provides one such platforms where contributers come over an |[Snake_Gun_Water](https://github.com/kunjgit/GameZone/tree/main/Games/Snake_Gun_Water)| - - -======= | Game | Game | Game | Game | Game | | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | --- | @@ -1218,7 +1211,6 @@ This repository also provides one such platforms where contributers come over an [Roll_The_Dice](https://github.com/kunjgit/GameZone/tree/main/Games/Roll_The_Dice) | | [Black_jackk](https://github.com/kunjgit/GameZone/tree/main/Games/Black_jackk) | | [Flappy_Birdd](https://github.com/kunjgit/GameZone/tree/main/Games/Flappy_Birdd) | - | [Recognizing_Figures](https://github.com/kunjgit/GameZone/tree/main/Games/Recognizing_Figures) | [Screen Pet Game](https://github.com/kunjgit/GameZone/tree/main/Games/Screen-Pet-Game) | | [Sudoku_light_theme](https://github.com/kunjgit/GameZone/tree/main/Games/Sudoku_light_theme) | | [Find_the_ball](https://github.com/kunjgit/GameZone/tree/main/Games/Find_the_ball) | @@ -1322,10 +1314,12 @@ This repository also provides one such platforms where contributers come over an |[Snake_Gun_Water](https://github.com/kunjgit/GameZone/tree/main/Games/Snake_Gun_Water)| |[Tether](https://github.com/kunjgit/GameZone/tree/main/Games/Tether)| - +|[Rock Paper Scissors Lizard Spock Game](./Games/Rock_Paper_Scissors_Lizard_Spock_Game)| +|[Hangman_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Hangman_Game)| +
diff --git a/assets/images/Drum_kit.png b/assets/images/Drum_kit.png new file mode 100644 index 0000000000..b4da7adf8d Binary files /dev/null and b/assets/images/Drum_kit.png differ diff --git a/assets/images/Four_In_Row.png b/assets/images/Four_In_Row.png new file mode 100644 index 0000000000..df843ca111 Binary files /dev/null and b/assets/images/Four_In_Row.png differ diff --git a/assets/images/Four_In_Row.webp b/assets/images/Four_In_Row.webp new file mode 100644 index 0000000000..df843ca111 Binary files /dev/null and b/assets/images/Four_In_Row.webp differ diff --git a/assets/images/Guess_That_Pokemon.png b/assets/images/Guess_That_Pokemon.png new file mode 100644 index 0000000000..1f256f374b Binary files /dev/null and b/assets/images/Guess_That_Pokemon.png differ diff --git a/assets/images/Hangman_Game.png b/assets/images/Hangman_Game.png new file mode 100644 index 0000000000..e437ece367 Binary files /dev/null and b/assets/images/Hangman_Game.png differ diff --git a/assets/images/Quick_Math.png b/assets/images/Quick_Math.png new file mode 100644 index 0000000000..a2d09255c7 Binary files /dev/null and b/assets/images/Quick_Math.png differ diff --git a/assets/images/Rock_Paper_Scissors_Lizard_Spock_Game.PNG b/assets/images/Rock_Paper_Scissors_Lizard_Spock_Game.PNG new file mode 100644 index 0000000000..23cf347df9 Binary files /dev/null and b/assets/images/Rock_Paper_Scissors_Lizard_Spock_Game.PNG differ diff --git a/assets/images/Subway_Surfers.png b/assets/images/Subway_Surfers.png new file mode 100644 index 0000000000..2211f263b6 Binary files /dev/null and b/assets/images/Subway_Surfers.png differ diff --git a/assets/images/ralph.png b/assets/images/ralph.png new file mode 100644 index 0000000000..e8e5b9dd5b Binary files /dev/null and b/assets/images/ralph.png differ diff --git a/assets/images/riddle_game.png b/assets/images/riddle_game.png new file mode 100644 index 0000000000..1801c86a0e Binary files /dev/null and b/assets/images/riddle_game.png differ diff --git a/assets/js/gamesData.json b/assets/js/gamesData.json index 6956aa014e..35d7b3b3b5 100644 --- a/assets/js/gamesData.json +++ b/assets/js/gamesData.json @@ -3158,4 +3158,9 @@ }, - + "630":{ + "gameTitle" : "Hangman Game", + "gameUrl": "Hangman_Game", + "thumbnailUrl": "Hangman_Game.png" + } +}