From 5e492df5162ee782062165f3b48a930601b87819 Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:48:51 +0530 Subject: [PATCH 1/7] Create index.html --- .../Elemental switch/index.html | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 SinglePlayer - Games/Elemental switch/index.html diff --git a/SinglePlayer - Games/Elemental switch/index.html b/SinglePlayer - Games/Elemental switch/index.html new file mode 100644 index 00000000..65b8f394 --- /dev/null +++ b/SinglePlayer - Games/Elemental switch/index.html @@ -0,0 +1,22 @@ + + + + + + Elemental Switch + + + +
+

Elemental Switch

+ +
+ + + +
+

Use arrow keys to move. Switch between elements to overcome obstacles!

+
+ + + From 409708b8e3033da2544b765f30d752add0220f3d Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:49:06 +0530 Subject: [PATCH 2/7] Create styles.css --- .../Elemental switch/styles.css | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 SinglePlayer - Games/Elemental switch/styles.css diff --git a/SinglePlayer - Games/Elemental switch/styles.css b/SinglePlayer - Games/Elemental switch/styles.css new file mode 100644 index 00000000..d0dffd77 --- /dev/null +++ b/SinglePlayer - Games/Elemental switch/styles.css @@ -0,0 +1,32 @@ +body { + text-align: center; + font-family: Arial, sans-serif; + background-color: #f0f0f0; +} + +#game { + margin: 20px auto; + width: 600px; + background-color: #ffffff; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0,0,0,0.1); +} + +canvas { + border: 1px solid #000; + margin-top: 10px; +} + +button { + margin: 10px; + padding: 10px 20px; + font-size: 16px; + border: none; + border-radius: 5px; + cursor: pointer; +} + +button:active { + transform: scale(0.95); +} From 57821bca965d729a45c81e01beb39cb887822aaf Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:49:21 +0530 Subject: [PATCH 3/7] Create script.js --- .../Elemental switch/script.js | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 SinglePlayer - Games/Elemental switch/script.js diff --git a/SinglePlayer - Games/Elemental switch/script.js b/SinglePlayer - Games/Elemental switch/script.js new file mode 100644 index 00000000..9a994806 --- /dev/null +++ b/SinglePlayer - Games/Elemental switch/script.js @@ -0,0 +1,88 @@ +const canvas = document.getElementById('gameCanvas'); +const ctx = canvas.getContext('2d'); + +let character = { + x: 50, + y: 350, + width: 30, + height: 30, + element: 'fire' +}; + +let obstacles = [ + { x: 200, y: 300, width: 50, height: 50, type: 'fire' }, + { x: 300, y: 200, width: 50, height: 50, type: 'water' }, + { x: 400, y: 100, width: 50, height: 50, type: 'earth' } +]; + +let goal = { x: 550, y: 350, width: 30, height: 30 }; + +function switchElement(element) { + character.element = element; +} + +document.addEventListener('keydown', (e) => { + switch (e.key) { + case 'ArrowUp': character.y -= 10; break; + case 'ArrowDown': character.y += 10; break; + case 'ArrowLeft': character.x -= 10; break; + case 'ArrowRight': character.x += 10; break; + } + checkCollisions(); + drawGame(); +}); + +function checkCollisions() { + obstacles.forEach(obstacle => { + if (character.x < obstacle.x + obstacle.width && + character.x + character.width > obstacle.x && + character.y < obstacle.y + obstacle.height && + character.y + character.height > obstacle.y) { + if (character.element !== obstacle.type) { + alert('Game Over! You hit an obstacle.'); + resetGame(); + } + } + }); + + if (character.x < goal.x + goal.width && + character.x + character.width > goal.x && + character.y < goal.y + goal.height && + character.y + character.height > goal.y) { + alert('You Win! You reached the goal.'); + resetGame(); + } +} + +function resetGame() { + character.x = 50; + character.y = 350; + character.element = 'fire'; + drawGame(); +} + +function drawGame() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + + ctx.fillStyle = getColor(character.element); + ctx.fillRect(character.x, character.y, character.width, character.height); + + obstacles.forEach(obstacle => { + ctx.fillStyle = getColor(obstacle.type); + ctx.fillRect(obstacle.x, obstacle.y, obstacle.width, obstacle.height); + }); + + ctx.fillStyle = 'gold'; + ctx.fillRect(goal.x, goal.y, goal.width, goal.height); +} + +function getColor(element) { + switch (element) { + case 'fire': return 'red'; + case 'water': return 'blue'; + case 'earth': return 'green'; + default: return 'black'; + } +} + +drawGame(); From c8d15639f3c2bd21b5b9a46e1bcb75d38572f181 Mon Sep 17 00:00:00 2001 From: pallasivasai Date: Wed, 31 Jul 2024 07:33:43 +0530 Subject: [PATCH 4/7] Shape_Clicker_Game is added --- README.md | 3 +- .../Banner - image/Shape_Clicker_Game.png | Bin 0 -> 65363 bytes .../Shape_Clicker_Game/README.md | 52 +++++++++++++++ .../Shape_Clicker_Game/index.html | 17 +++++ .../Shape_Clicker_Game/script.js | 59 ++++++++++++++++++ .../Shape_Clicker_Game/styles.css | 38 +++++++++++ additionalpage/game.html | 54 ++++++++++++++++ 7 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 SinglePlayer - Games/Banner - image/Shape_Clicker_Game.png create mode 100644 SinglePlayer - Games/Shape_Clicker_Game/README.md create mode 100644 SinglePlayer - Games/Shape_Clicker_Game/index.html create mode 100644 SinglePlayer - Games/Shape_Clicker_Game/script.js create mode 100644 SinglePlayer - Games/Shape_Clicker_Game/styles.css diff --git a/README.md b/README.md index 0aacec62..976f6bd1 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,8 @@ ________________________________________________________________________________ | 203 | [Duck_Hunt_Game](.SinglePlayer%20-%20Games/Duck_Hunt_Game) | | 204 | [Breakout_Game](.SinglePlayer%20-%20Games/BreakOut_Game) | | 205 | [Breakout_Game](.SinglePlayer%20-%20Games/Maze_Game) | -| 206 | [Breakout_Game](.SinglePlayer%20-%20Games/Bomber_Game) | +| 206 | [Bomber_Game](.SinglePlayer%20-%20Games/Bomber_Game) | +| 207 | [Shape_Clicker_Game](.SinglePlayer%20-%20Games/Shape_Clicker_Game) | diff --git a/SinglePlayer - Games/Banner - image/Shape_Clicker_Game.png b/SinglePlayer - Games/Banner - image/Shape_Clicker_Game.png new file mode 100644 index 0000000000000000000000000000000000000000..283bda6d216e30c4d0f1f0186a776d6cf27b7d0d GIT binary patch literal 65363 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 z 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�MZ-UIg4<^eU!or?u(Bo2uOJ`uBxtf?xgrY(R1Z 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 literal 0 HcmV?d00001 diff --git a/SinglePlayer - Games/Shape_Clicker_Game/README.md b/SinglePlayer - Games/Shape_Clicker_Game/README.md new file mode 100644 index 00000000..0ae3531d --- /dev/null +++ b/SinglePlayer - Games/Shape_Clicker_Game/README.md @@ -0,0 +1,52 @@ +# Shape Clicker Game + +## Overview + +The Shape Clicker Game is a simple and fun web-based game where players click on randomly appearing shapes to score points. The game runs for a fixed duration, and the player's objective is to click on as many shapes as possible within the time limit. + +## Features + +- Start the game by clicking the "Start Game" button. +- Randomly appearing shapes (circles or squares) within the game container. +- Each click on a shape increases the player's score. +- The game lasts for 30 seconds. +- The player's score is displayed and updated in real-time. +- At the end of the game, an alert displays the player's final score. + +## Technologies Used + +- HTML for structuring the webpage. +- CSS for styling the game elements. +- JavaScript for game logic and interactivity. + +## How to Play + +1. Open the game in a web browser. +2. Click the "Start Game" button to begin. +3. Click on the shapes that appear in the game container as quickly as possible to increase your score. +4. The game will automatically end after 30 seconds, and your final score will be displayed. + +## Setup Instructions + +1. Clone the repository to your local machine. +2. Open the `index.html` file in a web browser to start the game. + +## File Structure + +- `index.html`: The main HTML file that contains the structure of the game. +- `styles.css`: The CSS file for styling the game elements. +- `script.js`: The JavaScript file containing the game logic. + +## Customization + +You can customize the game by modifying the following: + +- The duration of the game by changing the `setTimeout` value in the `endGame` function. +- The interval at which shapes appear by adjusting the `setInterval` value in the `startGame` function. +- The size, color, and types of shapes by modifying the `createShape` and `getRandomColor` functions. + +## License + +This project is open-source and available under the MIT License. Feel free to fork, modify, and use it in your own projects. + +Enjoy playing the Shape Clicker Game! \ No newline at end of file diff --git a/SinglePlayer - Games/Shape_Clicker_Game/index.html b/SinglePlayer - Games/Shape_Clicker_Game/index.html new file mode 100644 index 00000000..50e1ac09 --- /dev/null +++ b/SinglePlayer - Games/Shape_Clicker_Game/index.html @@ -0,0 +1,17 @@ + + + + + + Shape Clicker Game + + + +

Shape Clicker Game

+
+ +
+

Score: 0

+ + + diff --git a/SinglePlayer - Games/Shape_Clicker_Game/script.js b/SinglePlayer - Games/Shape_Clicker_Game/script.js new file mode 100644 index 00000000..1a86f959 --- /dev/null +++ b/SinglePlayer - Games/Shape_Clicker_Game/script.js @@ -0,0 +1,59 @@ +let score = 0; +let gameInterval; + +document.getElementById('start-button').addEventListener('click', startGame); + +function startGame() { + score = 0; + document.getElementById('score').textContent = 'Score: ' + score; + document.getElementById('start-button').disabled = true; + + gameInterval = setInterval(createShape, 1000); + + setTimeout(endGame, 30000); +} + +function createShape() { + const gameContainer = document.getElementById('game-container'); + const shape = document.createElement('div'); + const size = Math.random() * 50 + 20; + const x = Math.random() * (gameContainer.offsetWidth - size); + const y = Math.random() * (gameContainer.offsetHeight - size); + const shapeType = Math.random() > 0.5 ? 'circle' : 'square'; + + shape.classList.add('shape', shapeType); + shape.style.width = `${size}px`; + shape.style.height = `${size}px`; + shape.style.left = `${x}px`; + shape.style.top = `${y}px`; + shape.style.backgroundColor = getRandomColor(); + + shape.addEventListener('click', () => { + score++; + document.getElementById('score').textContent = 'Score: ' + score; + shape.remove(); + }); + + gameContainer.appendChild(shape); + + setTimeout(() => { + if (shape.parentElement) { + shape.remove(); + } + }, 2000); +} + +function endGame() { + clearInterval(gameInterval); + document.getElementById('start-button').disabled = false; + alert('Game over! Your score is ' + score); +} + +function getRandomColor() { + const letters = '0123456789ABCDEF'; + let color = '#'; + for (let i = 0; i < 6; i++) { + color += letters[Math.floor(Math.random() * 16)]; + } + return color; +} diff --git a/SinglePlayer - Games/Shape_Clicker_Game/styles.css b/SinglePlayer - Games/Shape_Clicker_Game/styles.css new file mode 100644 index 00000000..5195a252 --- /dev/null +++ b/SinglePlayer - Games/Shape_Clicker_Game/styles.css @@ -0,0 +1,38 @@ +body { + font-family: Arial, sans-serif; + text-align: center; + background-color: #f0f0f0; + margin: 0; + padding: 20px; +} + +h1 { + font-size: 2em; + margin-bottom: 20px; +} + +#game-container { + position: relative; + width: 80vw; + height: 60vh; + margin: 0 auto; + border: 2px solid #333; + background-color: #fff; + overflow: hidden; +} + +.shape { + position: absolute; + cursor: pointer; +} + +#score { + font-size: 1.5em; + margin-top: 20px; +} + +#start-button { + padding: 10px 20px; + font-size: 1em; + cursor: pointer; +} diff --git a/additionalpage/game.html b/additionalpage/game.html index 5ed2183f..a01fb94c 100644 --- a/additionalpage/game.html +++ b/additionalpage/game.html @@ -7721,6 +7721,60 @@

Duck_Hunt_Game

+ +
+
+ + +
+ 45 + +
+
+
+ + +
+
+

Shape_Clicker_Game

+

Shape_Clicker_Game

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

Release Date:  

+

20.06.2023

+
+
+

Updated:  

+

Action | Desktop

+
+
+
+ Play Now +
+
+
+
+ + + From e1d3df9a2390bc5842bcddf112209d42cbe2f3cd Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Wed, 31 Jul 2024 20:18:57 +0530 Subject: [PATCH 5/7] Create index.html --- SinglePlayer - Games/Light-Weaver/index.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 SinglePlayer - Games/Light-Weaver/index.html diff --git a/SinglePlayer - Games/Light-Weaver/index.html b/SinglePlayer - Games/Light-Weaver/index.html new file mode 100644 index 00000000..696bfc56 --- /dev/null +++ b/SinglePlayer - Games/Light-Weaver/index.html @@ -0,0 +1,17 @@ + + + + + + Light Weaver + + + +
+

Light Weaver

+ +

Use arrow keys to move the light beam. Reflect off mirrors to navigate through the maze!

+
+ + + From 5f0fc52afd3aa26231209f21f117eb7061b152b1 Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Wed, 31 Jul 2024 20:19:15 +0530 Subject: [PATCH 6/7] Create styles.css --- SinglePlayer - Games/Light-Weaver/styles.css | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 SinglePlayer - Games/Light-Weaver/styles.css diff --git a/SinglePlayer - Games/Light-Weaver/styles.css b/SinglePlayer - Games/Light-Weaver/styles.css new file mode 100644 index 00000000..6c383c04 --- /dev/null +++ b/SinglePlayer - Games/Light-Weaver/styles.css @@ -0,0 +1,19 @@ +body { + text-align: center; + font-family: Arial, sans-serif; + background-color: #f0f0f0; +} + +#game { + margin: 20px auto; + width: 600px; + background-color: #ffffff; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0,0,0,0.1); +} + +canvas { + border: 1px solid #000; + margin-top: 10px; +} From 6da5da39939b18a7c2bb3414413c1a311c06a7b2 Mon Sep 17 00:00:00 2001 From: Aditi Bansal <142652964+Aditi22Bansal@users.noreply.github.com> Date: Wed, 31 Jul 2024 20:19:30 +0530 Subject: [PATCH 7/7] Create script.js --- SinglePlayer - Games/Light-Weaver/script.js | 102 ++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 SinglePlayer - Games/Light-Weaver/script.js diff --git a/SinglePlayer - Games/Light-Weaver/script.js b/SinglePlayer - Games/Light-Weaver/script.js new file mode 100644 index 00000000..8f2343c8 --- /dev/null +++ b/SinglePlayer - Games/Light-Weaver/script.js @@ -0,0 +1,102 @@ +const canvas = document.getElementById('gameCanvas'); +const ctx = canvas.getContext('2d'); + +let lightBeam = { + x: 50, + y: 200, + dx: 2, + dy: 0, + width: 10, + height: 10 +}; + +let mirrors = [ + { x: 200, y: 150, width: 10, height: 100, angle: 45 }, + { x: 400, y: 100, width: 10, height: 100, angle: -45 } +]; + +let goal = { x: 550, y: 200, width: 30, height: 30 }; + +function drawGame() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + + // Draw light beam + ctx.fillStyle = 'yellow'; + ctx.fillRect(lightBeam.x, lightBeam.y, lightBeam.width, lightBeam.height); + + // Draw mirrors + mirrors.forEach(mirror => { + ctx.save(); + ctx.translate(mirror.x + mirror.width / 2, mirror.y + mirror.height / 2); + ctx.rotate((mirror.angle * Math.PI) / 180); + ctx.fillStyle = 'silver'; + ctx.fillRect(-mirror.width / 2, -mirror.height / 2, mirror.width, mirror.height); + ctx.restore(); + }); + + // Draw goal + ctx.fillStyle = 'gold'; + ctx.fillRect(goal.x, goal.y, goal.width, goal.height); +} + +function updateGame() { + lightBeam.x += lightBeam.dx; + lightBeam.y += lightBeam.dy; + + checkCollisions(); + drawGame(); + + requestAnimationFrame(updateGame); +} + +function checkCollisions() { + mirrors.forEach(mirror => { + if (lightBeam.x < mirror.x + mirror.width && + lightBeam.x + lightBeam.width > mirror.x && + lightBeam.y < mirror.y + mirror.height && + lightBeam.y + lightBeam.height > mirror.y) { + // Reflect the light beam + if (mirror.angle === 45) { + lightBeam.dx = -lightBeam.dy; + lightBeam.dy = -lightBeam.dx; + } else if (mirror.angle === -45) { + lightBeam.dx = lightBeam.dy; + lightBeam.dy = lightBeam.dx; + } + } + }); + + if (lightBeam.x < goal.x + goal.width && + lightBeam.x + lightBeam.width > goal.x && + lightBeam.y < goal.y + goal.height && + lightBeam.y + lightBeam.height > goal.y) { + alert('You Win! You reached the goal.'); + resetGame(); + } + + if (lightBeam.x < 0 || lightBeam.x > canvas.width || + lightBeam.y < 0 || lightBeam.y > canvas.height) { + alert('Game Over! You went out of bounds.'); + resetGame(); + } +} + +function resetGame() { + lightBeam.x = 50; + lightBeam.y = 200; + lightBeam.dx = 2; + lightBeam.dy = 0; + drawGame(); +} + +document.addEventListener('keydown', (e) => { + switch (e.key) { + case 'ArrowUp': lightBeam.dy = -2; lightBeam.dx = 0; break; + case 'ArrowDown': lightBeam.dy = 2; lightBeam.dx = 0; break; + case 'ArrowLeft': lightBeam.dx = -2; lightBeam.dy = 0; break; + case 'ArrowRight': lightBeam.dx = 2; lightBeam.dy = 0; break; + } +}); + +drawGame(); +updateGame();