diff --git a/Games/Seahorse_Rash/README.md b/Games/Seahorse_Rash/README.md new file mode 100644 index 0000000000..37184ad1dc --- /dev/null +++ b/Games/Seahorse_Rash/README.md @@ -0,0 +1,35 @@ +# **Game_Name** + +--- Seahorse Rash + +
+ +## **Description 📃** + +- This game is just for fun to shootall mechanical fishes inside a sea by your very own muscular mechanical seahorse. + +## **functionalities 🎮** + +- Navigate the seahorse up and down +- Shoot the fishes and gain points more than 50 under 30 seconds. +- IF you get hit by a fish then you get a special power up which increases your speed, bullets refilling speed and you can shoot using your tail also. +
+ +## **How to play? 🕹️** + +- Use + Up key: To take seahorse up. + Down key: To take seahorse down. +- Shoot the fishes by pressing the space bar. +
+ +## **Screenshots 📸** + +
+ + + +
+ +## **Working video 📹** + diff --git a/Games/Seahorse_Rash/index.html b/Games/Seahorse_Rash/index.html new file mode 100644 index 0000000000..07371ac115 --- /dev/null +++ b/Games/Seahorse_Rash/index.html @@ -0,0 +1,37 @@ + + + + + + Seahorse Rash + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Games/Seahorse_Rash/script.js b/Games/Seahorse_Rash/script.js new file mode 100644 index 0000000000..ee3aeefbf0 --- /dev/null +++ b/Games/Seahorse_Rash/script.js @@ -0,0 +1,565 @@ +window.addEventListener('load', function () { + //canvas setup + const canvas = document.getElementById('canvas1'); + const ctx = canvas.getContext('2d'); + canvas.width = 1000; + canvas.height = 500; + + class InputHandler { + constructor(game) { + this.game = game; + window.addEventListener('keydown', e => { + if (((e.key === 'ArrowUp') || (e.key === 'ArrowDown')) && + this.game.keys.indexOf(e.key) === -1) { + this.game.keys.push(e.key); + } + else if (e.key === ' ') { + this.game.player.shootTop(); + } + else if (e.key === 'd') + this.game.debug = !this.game.debug; + }); + window.addEventListener('keyup', e => { + if (this.game.keys.indexOf(e.key) > -1) { + this.game.keys.splice(this.game.keys.indexOf(e.key), 1); + } + console.log(this.game.keys); + }); + } + } + + class Projectile { + constructor(game, x, y) { + this.game = game; + this.x = x; + this.y = y; + this.width = 10; + this.height = 3; + this.speed = 3; + this.makrkedForDeletion = false; + this.image = document.getElementById('projectile'); + } + update() { + this.x += this.speed; + if (this.x > this.game.width * 0.8) + this.markedForDeletion = true; + } + draw(context) { + context.drawImage(this.image, this.x, this.y); + } + } + + class Particle { + constructor(game, x, y) { + this.game = game; + this.x = x; + this.y = y; + this.image = document.getElementById('gears'); + this.frameX = Math.floor(Math.random() * 3); + this.frameY = Math.floor(Math.random() * 3); + this.spriteSize = 50; + this.sizeModifier = (Math.random() * 0.5 + 0.5).toFixed(1); + this.size = this.spriteSize * this.sizeModifier; + this.speedX = Math.random() * 6 - 3; + this.speedY = Math.random() * -15; + this.gravity = 0.5; + this.markedForDeletion = false; + this.angle = 0; + this.va = Math.random() * 0.2 - 0.1; + this.bounced = 0; + this.bottomBounceBoundary = Math.random() * 80 + 60; + } + update() { + this.angle += this.va; + this.speedY += this.gravity; + this.x -= this.speedX + this.game.speed; + this.y += this.speedY; + if (this.y > this.game.height + this.size || this.x < 0 - this.size) + this.markedForDeletion = true; + if (this.y > this.game.height - this.bottomBounceBoundary && this.bounced < 2) { + this.bounced++; + this.speedY += -0.5; + } + } + draw(context) { + context.save(); + context.translate(this.x, this.y); + context.rotate(this.angle); + context.drawImage(this.image, this.frameX * this.spriteSize, this.frameY * this.spriteSize, + this.spriteSize, this.spriteSize, this.size * -0.5, this.size * -0.5, this.size, this.size); + context.restore(); + } + } + + class Player { + constructor(game) { + this.game = game; + this.width = 120; + this.height = 190; + this.x = 20; + this.y = 100; + this.frameX = 0; + this.frameY = 0; + this.speedY = 0; + this.maxFrame = 37; + this.maxSpeed = 3; + this.projectiles = []; + this.image = document.getElementById('player'); + this.powerUp = false; + this.powerUpTimer = 0; + this.powerUpLimit = 10000; + } + update(deltaTime) { + if (this.game.keys.includes('ArrowUp')) + this.speedY = -this.maxSpeed; + else if (this.game.keys.includes('ArrowDown')) + this.speedY = this.maxSpeed; + else + this.speedY = 0; + + this.y += this.speedY; + //vertical boundaries + if (this.y > this.game.height - this.height * 0.5) + this.y = this.game.height - this.height * 0.5; + else if (this.y < -this.height * 0.5) + this.y = -this.height * 0.5; + //handle projectiles + this.projectiles.forEach(projectile => { + projectile.update(); + }); + this.projectiles = this.projectiles.filter(projectile => !projectile.markedForDeletion); + //sprite animation + if (this.frameX < this.maxFrame) { + this.frameX++; + } + else { + this.frameX = 0; + } + //power up + if (this.powerUp) { + if (this.powerUpTimer > this.powerUpLimit) { + this.powerUpTimer = 0; + this.powerUp = false; + this.frameY = 0; + } + else { + this.powerUpTimer += deltaTime; + this.frameY = 1; + this.game.ammo += 0.1; + } + } + } + draw(context) { + if (!this.game.debug) + context.strokeRect(this.x, this.y, this.width, this.height); + this.projectiles = this.projectiles.filter(projectile => !projectile.markedForDeletion); + context.drawImage(this.image, this.frameX * this.width, this.frameY * this.height, this.width, this.height, this.x, this.y, this.width, this.height); + this.projectiles.forEach(projectile => { + projectile.draw(context); + }); + } + shootTop() { + if (this.game.ammo > 0) { + this.projectiles.push(new Projectile(this.game, this.x + 80, this.y + 30)); + this.game.ammo--; + } + if (this.powerUp) + this.shootBottom(); + } + shootBottom() { + if (this.game.ammo > 0) { + this.projectiles.push(new Projectile(this.game, this.x + 80, this.y + 175)); + } + } + enterPowerUp() { + this.powerUpTimer = 0; + this.powerUp = true; + if (this.game.ammo < this.game.maxAmmo) + this.game.ammo = this.game.maxAmmo; + } + } + + class Enemy { + constructor(game) { + this.game = game; + this.x = this.game.width; + this.speedX = Math.random() * -1.5 - 0.5; + this.markedForDeletion = false; + this.frameX = 0; + this.frameY = 0; + this.maxFrame = 37; + } + update() { + this.x += this.speedX - this.game.speed; + if (this.x + this.width < 0) + this.markedForDeletion = true; + //sprite animation + if (this.frameX < this.maxFrame) { + this.frameX++; + } + else + this.frameX = 0; + } + draw(context) { + if (!this.game.debug) + context.strokeRect(this.x, this.y, this.width, this.height); + context.drawImage(this.image, this.frameX * this.width, this.frameY * this.height, this.width, this.height, this.x, this.y, this.width, this.height); + if (this.game.debug) { + context.font = '20px Helvetica'; + //context.fillText(this.lives, this.x, this.y); + } + } + } + class Angler1 extends Enemy { + constructor(game) { + super(game); + this.width = 228; + this.height = 169; + this.y = Math.random() * (this.game.height * 0.9 - this.height); + this.image = document.getElementById('angler1'); + this.frameY = Math.floor(Math.random() * 3); + this.lives = 5; + this.score = this.lives; + } + } + class Angler2 extends Enemy { + constructor(game) { + super(game); + this.width = 213; + this.height = 165; + this.y = Math.random() * (this.game.height * 0.9 - this.height); + this.image = document.getElementById('angler2'); + this.frameY = Math.floor(Math.random() * 2); + this.lives = 6; + this.score = this.lives; + } + } + class LuckyFish extends Enemy { + constructor(game) { + super(game); + this.width = 99; + this.height = 95; + this.y = Math.random() * (this.game.height * 0.9 - this.height); + this.image = document.getElementById('lucky'); + this.frameY = Math.floor(Math.random() * 2); + this.lives = 5; + this.score = 15; + this.type = 'lucky'; + } + } + class HiveWhale extends Enemy { + constructor(game) { + super(game); + this.width = 400; + this.height = 227; + this.y = Math.random() * (this.game.height * 0.95 - this.height); + this.image = document.getElementById('hivewhale'); + this.frameY = 0; + this.lives = 20; + this.score = this.lives; + this.type = 'hive'; + this.speedX = Math.random() * -1.2 - 0.2; + } + } + class Drone extends Enemy { + constructor(game, x, y) { + super(game); + this.width = 115; + this.height = 95; + this.x = x; + this.y = y; + this.image = document.getElementById('drone'); + this.frameY = Math.floor(Math.random() * 2); + this.lives = 3; + this.score = this.lives; + this.type = 'drone'; + this.speedX = Math.random() * -4.2 - 0.5; + } + } + + class Layer { + constructor(game, image, speedModifier) { + this.game = game; + this.image = image; + this.speedModifier = speedModifier; + this.width = 1768; + this.height = 500; + this.x = 0; + this.y = 0; + } + update() { + if (this.x <= -this.width) + this.x = 0; + this.x -= this.game.speed * this.speedModifier; + } + draw(context) { + context.drawImage(this.image, this.x, this.y); + context.drawImage(this.image, this.x + this.width, this.y); + } + } + + class Background { + constructor(game) { + this.game = game; + this.image1 = document.getElementById('layer1'); + this.image2 = document.getElementById('layer2'); + this.image3 = document.getElementById('layer3'); + this.image4 = document.getElementById('layer4'); + this.layer1 = new Layer(this.game, this.image1, 0.2); + this.layer2 = new Layer(this.game, this.image2, 0.4); + this.layer3 = new Layer(this.game, this.image3, 1); + this.layer4 = new Layer(this.game, this.image4, 1.5); + this.layers = [this.layer1, this.layer2, this.layer3]; + } + update() { + this.layers.forEach(layer => layer.update()); + } + draw(context) { + this.layers.forEach(layer => layer.draw(context)); + } + } + + class Explosion { + constructor(game, x, y) { + this.game = game; + this.x = x; + this.y = y; + this.frameX = 0; + this.spriteWidth = 200; + this.spriteHeight = 200; + this.width = this.spriteWidth; + this.height = this.spriteHeight; + this.x = x - this.width * 0.5; + this.y = y - this.height * 0.5; + this.fps = 30; + this.timer = 0; + this.interval = 1000 / this.fps; + this.markedForDeletion = false; + } + update(deltaTime) { + this.x -= this.game.speed; + if (this.timer > this.interval) { + this.frameX++; + this.timer = 0; + } + else { + this.timer += deltaTime + } + if (this.frameX > this.maxFrame) + this.markedForDeletion = true; + } + draw(context) { + context.drawImage(this.image, this.frameX * this.spriteWidth, 0, this.spriteWidth, this.spriteHeight, this.x, this.y, this.width, this.height); + } + } + class SmokeExplosion extends Explosion { + constructor(game, x, y) { + super(game, x, y); + this.image = document.getElementById('smokeExplosion'); + } + } + class FireExplosion extends Explosion { + constructor(game, x, y) { + super(game, x, y); + this.image = document.getElementById('fireExplosion'); + } + } + + class UI { + constructor(game) { + this.game = game; + this.fontSize = 25; + this.fontFamily = 'Bangers'; + this.color = 'white'; + } + draw(context) { + context.save(); + context.fillStyle = this.color; + context.shadowOffsetX = 2; + context.shadowOffsetY = 2; + context.shadowColor = 'black'; + context.font = this.fontSize + 'px' + this.fontFamily; + //score + context.fillText('Score: ' + this.game.score, 20, 40); + //timer + const formattedTime = (this.game.gameTime * 0.001).toFixed(1); + context.fillText('Timer: ' + formattedTime, 20, 100); + //game over messages + if (this.game.gameOver) { + context.textAlign = 'center'; + let message1; + let message2; + if (this.game.score > this.game.winningScore) { + message1 = 'Most Wondorous!'; + message2 = 'Well Done Explorer!'; + } + else { + message1 = 'Blazes!'; + message2 = 'Get my repair kit and try again!'; + } + context.font = '150px' + this.fontFamily; + context.fillText(message1, this.game.width * 0.5, this.game.height * 0.5 - 20); + context.font = '25px' + this.fontFamily; + context.fillText(message2, this.game.width * 0.5, this.game.height * 0.5 + 20); + } + //ammo + if (this.game.player.powerUp) + context.fillStyle = '#ffffbd'; + for (let i = 0; i < this.game.ammo; i++) { + context.fillRect(20 + 5 * i, 50, 3, 20); + } + context.restore(); + } + } + + class Game { + constructor(width, height) { + this.width = width; + this.height = height; + this.background = new Background(this); + this.player = new Player(this); + this.input = new InputHandler(this); + this.ui = new UI(this); + this.keys = []; + this.enemies = []; + this.particles = []; + this.explosions = []; + this.enemyTimer = 0; + this.enemyInterval = 2000; + this.ammo = 20; + this.maxAmmo = 50; + this.ammoTimer = 0; + this.ammoInterval = 350; + this.gameOver = false; + this.score = 0; + this.winningScore = 80; + this.gameTime = 0; + this.timeLimit = 30000; + this.speed = 1; + this.debug = true; + } + update(deltaTime) { + if (!this.gameOver) + this.gameTime += deltaTime; + if (this.gameTime > this.timeLimit) + this.gameOver = true; + this.background.update(); + this.background.layer4.update(); + this.player.update(deltaTime); + if (this.ammoTimer > this.ammoInterval) { + if (this.ammo < this.maxAmmo) + this.ammo++; + this.ammoTimer = 0; + } + else { + this.ammoTimer += deltaTime; + } + this.particles.forEach(particle => particle.update()); + this.particles = this.particles.filter(particle => !particle.makrkedForDeletion); + this.explosions.forEach(explosion => explosion.update(deltaTime)); + this.explosions = this.explosions.filter(explosion => !explosion.makrkedForDeletion); + this.enemies.forEach(enemy => { + enemy.update(); + if (this.checkCollision(this.player, enemy)) { + enemy.markedForDeletion = true; + this.addExplosion(enemy); + for (let i = 0; i < 10; i++) { + this.particles.push(new Particle(this, enemy.x + enemy.width * 0.5, + enemy.y + enemy.height * 0.5)); + } + if (enemy.type === 'lucky') + this.player.enterPowerUp(); + else if (!this.gameOver) + this.score--; + } + this.player.projectiles.forEach(projectile => { + if (this.checkCollision(projectile, enemy)) { + enemy.lives--; + projectile.markedForDeletion = true; + this.particles.push(new Particle(this, enemy.x + enemy.width * 0.5, + enemy.y + enemy.height * 0.5)); + if (enemy.lives <= 0) { + for (let i = 0; i < enemy.score; i++) { + this.particles.push(new Particle(this, enemy.x + enemy.width * 0.5, + enemy.y + enemy.height * 0.5)); + } + enemy.markedForDeletion = true; + this.addExplosion(enemy); + if (enemy.type === 'hive') { + for (let i = 0; i < 5; i++) + this.enemies.push(new Drone(this, enemy.x + Math.random() * enemy.width, + enemy.y + Math.random() * enemy.height * 0.5)); + } + if (!this.gameOver) + this.score += enemy.score; + // if (this.score > this.winningScore) + // this.gameOver = true; + } + } + }) + }); + this.enemies = this.enemies.filter(enemy => !enemy.markedForDeletion); + if (this.enemyTimer > this.enemyInterval && !this.gameOver) { + this.addEnemy(); + this.enemyTimer = 0; + } + else { + this.enemyTimer += deltaTime; + } + } + draw(context) { + this.background.draw(context); + this.ui.draw(context); + this.player.draw(context); + this.particles.forEach(particle => particle.draw(context)); + this.enemies.forEach(enemy => { + enemy.draw(context); + }); + this.explosions.forEach(explosion => { + explosion.draw(context); + }); + this.background.layer4.draw(context); + } + addEnemy() { + const randomize = Math.random(); + if (randomize < 0.3) + this.enemies.push(new Angler1(this)); + else if (randomize < 0.6) + this.enemies.push(new Angler2(this)); + else if (randomize < 0.7) + this.enemies.push(new HiveWhale(this)); + else + this.enemies.push(new LuckyFish(this)); + } + addExplosion(enemy) { + const randomize = Math.random(); + if (randomize < 0.5) { + this.explosions.push(new SmokeExplosion(this, enemy.x + enemy.width * 0.5, enemy.y + enemy.height * 0.5)); + } + else { + this.explosions.push(new FireExplosion(this, enemy.x + enemy.width * 0.5, enemy.y + enemy.height * 0.5)); + } + } + checkCollision(rect1, rect2) { + return (rect1.x < rect2.x + rect2.width && + rect1.x + rect1.width > rect2.x && + rect1.y < rect2.y + rect2.height && + rect1.height + rect1.y > rect2.y) + } + } + + const game = new Game(canvas.width, canvas.height); + + let lastTime = 0; + + //animation loop + function animate(timeStamp) { + const deltaTime = timeStamp - lastTime; + lastTime = timeStamp; + ctx.clearRect(0, 0, canvas.width, canvas.height); + game.draw(ctx); + game.update(deltaTime); + requestAnimationFrame(animate); + } + animate(0); +}); \ No newline at end of file diff --git a/Games/Seahorse_Rash/style.css b/Games/Seahorse_Rash/style.css new file mode 100644 index 0000000000..9894330f6a --- /dev/null +++ b/Games/Seahorse_Rash/style.css @@ -0,0 +1,24 @@ +*{ + margin:0; + padding:0; + box-sizing:border-box; +} +body { + background-image: url("/assets/Seahorse_Rash_Game/bg.jpg"); + background-color: #cccccc; + } + +#canvas1{ + border:5px solid black; + position: absolute; + top:50%; + left:50%; + transform:translate(-50%,-50%); + background:#4d79bc; + max-width:100%; + max-height:100%; + font-family: 'Bangers', cursive; +} +#layer1,#layer2,#layer3,#layer4,#player,#angler1,#angler2,#lucky,#projectile,#gears,#hivewhale,#drone,#smokeExplosion,#fireExplosion{ + display:none; +} \ No newline at end of file diff --git a/README.md b/README.md index 6d8b1d1315..1cf205c7a8 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,9 @@ This repository also provides one such platforms where contributers come over an
+ + +
| Game | Game | Game | Game | Game | @@ -189,44 +192,38 @@ This repository also provides one such platforms where contributers come over an | [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) | [Color_Blast](https://github.com/kunjgit/GameZone/tree/main/Games/Color_Blast) | | [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [Coloron](https://github.com/kunjgit/GameZone/tree/main/Games/Coloron) | [PenPointerFight](https://github.com/kunjgit/GameZone/tree/main/Games/PenPointerFight) | -| [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) | | | -| [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) | | -| [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [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) + +| [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) | | | +| [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) | | + +| [Maze_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Maze_Game) | [Earth_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Earth_Guardian) | [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) +| [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) -| [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) | -| [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) | -| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | +| [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) | +| [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) | +| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | -| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [DoraemonRun ](https://github.com/kunjgit/GameZone/tree/main/Games/DoraemonRun) | -| [Memory_Cards_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Cards_Game) | +| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [DoraemonRun ](https://github.com/kunjgit/GameZone/tree/main/Games/DoraemonRun) | +| [Memory_Cards_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Memory_Cards_Game) | | [Technical_Mind_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Technical_Mind_Game) | -[Slide_Master_Puzzle](https://github.com/kunjgit/GameZone/tree/Main/Games/Slide_Master_Puzz)| | -| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [Letter_Sleuth](https://github.com/swetha5157/GameZone/tree/main/Games/Letter_Sleuth) +[Slide_Master_Puzzle](https://github.com/kunjgit/GameZone/tree/Main/Games/Slide_Master_Puzz)| | -| [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) | +| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [Letter_Sleuth](https://github.com/swetha5157/GameZone/tree/main/Games/Letter_Sleuth) -[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) | +| [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) | -| [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) | -[16_Puzzle](https://github.com/kunjgit/GameZone/tree/main/Games/16_Puzzle) | | [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) | @@ -280,12 +277,8 @@ This repository also provides one such platforms where contributers come over an | [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) | -| [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) | -| [Ball_Shooting_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Ball_Shooting_Game) | [CatchTheBall](https://github.com/kunjgit/GameZone/tree/main/Games/CatchTheBall) | - [Candy_Crush_Saga](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Crush_Saga) | - [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) | @@ -315,7 +308,6 @@ This repository also provides one such platforms where contributers come over an | [Random_joke_Generator](https://github.com/Jagpreet153/GameZone/tree/main/Games/Random_joke_Generator) | | [Arkanoid_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Arkanoid_Game) | | [Catch_Stars](https://github.com/Kunjgit/GameZone/tree/main/Games/Catch_Stars) | -| [Color Matcher](https://github.com/1911aditi/GameZone/tree/1a4f3847e11bb13b1aca4652a87868c9bc467a93/Games/color%20matcher)                | | [LaserDarts] (https://github.com/Jagpreet153/GameZone/tree/main/Games/LaserDarts) | [Block Building](https://github.com/kunjgit/GameZone/tree/main/Games/Block_Building) | | [Flames Game](https://github.com/kunjgit/GameZone/tree/main/Games/Flames_Game)| @@ -325,18 +317,18 @@ This repository also provides one such platforms where contributers come over an | [Emoji_slot_machine] (https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_slot_machine) | [NewsJunction](https://github.com/kunjgit/GameZone/tree/main/Games/NewsJunction) | [Pixel Painter](https://github.com/kunjgit/GameZone/tree/main/Games/pixel_painter) | -| [Reflex Game](https://github.com/kunjgit/GameZone/tree/main/Games/Reflex_Game) | | [NewsJunction](https://github.com/kunjgit/GameZone/tree/main/Games/NewsJunction) | -| [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) | -|[Color The Page](https://github.com/kunjgit/GameZone/tree/main/Games/Color_The_Page)| -| [Forest_Guardian](https://github.com/kunjgit/GameZone/tree/main/Games/Forst_Guardian) | +| [Recognizing_Figures](https://github.com/kunjgit/GameZone/tree/main/Games/Recognizing_Figures) | + | [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) | |[Color The Page](https://github.com/kunjgit/GameZone/tree/main/Games/Color_The_Page)| -| [Tic-Tac-Toe Game](https://github.com/kunjgit/GameZone/tree/main/Games/Tic-Tac-Toe) | -| [Rapid_click_frenzy](https://github.com/kunjgit/GameZone/tree/main/Games/Rapid_click_frenzy) | +| [Seahorse_Rash](https://github.com/kunjgit/GameZone/tree/main/Games/Seahorse_Rash)| + + + + diff --git a/assets/Seahorse_Rash.png b/assets/Seahorse_Rash.png new file mode 100644 index 0000000000..8d1c15d085 Binary files /dev/null and b/assets/Seahorse_Rash.png differ diff --git a/assets/Seahorse_Rash_Game/angler1.png b/assets/Seahorse_Rash_Game/angler1.png new file mode 100644 index 0000000000..859e611dbd Binary files /dev/null and b/assets/Seahorse_Rash_Game/angler1.png differ diff --git a/assets/Seahorse_Rash_Game/angler2.png b/assets/Seahorse_Rash_Game/angler2.png new file mode 100644 index 0000000000..3054fbf86d Binary files /dev/null and b/assets/Seahorse_Rash_Game/angler2.png differ diff --git a/assets/Seahorse_Rash_Game/bg.jpg b/assets/Seahorse_Rash_Game/bg.jpg new file mode 100644 index 0000000000..c2e4848a2d Binary files /dev/null and b/assets/Seahorse_Rash_Game/bg.jpg differ diff --git a/assets/Seahorse_Rash_Game/drone.png b/assets/Seahorse_Rash_Game/drone.png new file mode 100644 index 0000000000..f202630d11 Binary files /dev/null and b/assets/Seahorse_Rash_Game/drone.png differ diff --git a/assets/Seahorse_Rash_Game/fireExplosion.png b/assets/Seahorse_Rash_Game/fireExplosion.png new file mode 100644 index 0000000000..f3ccb00b32 Binary files /dev/null and b/assets/Seahorse_Rash_Game/fireExplosion.png differ diff --git a/assets/Seahorse_Rash_Game/gears.png b/assets/Seahorse_Rash_Game/gears.png new file mode 100644 index 0000000000..2d9d3efe86 Binary files /dev/null and b/assets/Seahorse_Rash_Game/gears.png differ diff --git a/assets/Seahorse_Rash_Game/hivewhale.png b/assets/Seahorse_Rash_Game/hivewhale.png new file mode 100644 index 0000000000..13b58fbd05 Binary files /dev/null and b/assets/Seahorse_Rash_Game/hivewhale.png differ diff --git a/assets/Seahorse_Rash_Game/layer1.png b/assets/Seahorse_Rash_Game/layer1.png new file mode 100644 index 0000000000..fe582919ba Binary files /dev/null and b/assets/Seahorse_Rash_Game/layer1.png differ diff --git a/assets/Seahorse_Rash_Game/layer2.png b/assets/Seahorse_Rash_Game/layer2.png new file mode 100644 index 0000000000..c2e9db6d54 Binary files /dev/null and b/assets/Seahorse_Rash_Game/layer2.png differ diff --git a/assets/Seahorse_Rash_Game/layer3.png b/assets/Seahorse_Rash_Game/layer3.png new file mode 100644 index 0000000000..bfb5db9386 Binary files /dev/null and b/assets/Seahorse_Rash_Game/layer3.png differ diff --git a/assets/Seahorse_Rash_Game/layer4.png b/assets/Seahorse_Rash_Game/layer4.png new file mode 100644 index 0000000000..a8591760a0 Binary files /dev/null and b/assets/Seahorse_Rash_Game/layer4.png differ diff --git a/assets/Seahorse_Rash_Game/lucky.png b/assets/Seahorse_Rash_Game/lucky.png new file mode 100644 index 0000000000..38f25f1838 Binary files /dev/null and b/assets/Seahorse_Rash_Game/lucky.png differ diff --git a/assets/Seahorse_Rash_Game/player.png b/assets/Seahorse_Rash_Game/player.png new file mode 100644 index 0000000000..e9799586ed Binary files /dev/null and b/assets/Seahorse_Rash_Game/player.png differ diff --git a/assets/Seahorse_Rash_Game/projectile.png b/assets/Seahorse_Rash_Game/projectile.png new file mode 100644 index 0000000000..8621f995c7 Binary files /dev/null and b/assets/Seahorse_Rash_Game/projectile.png differ diff --git a/assets/Seahorse_Rash_Game/smokeExplosion.png b/assets/Seahorse_Rash_Game/smokeExplosion.png new file mode 100644 index 0000000000..3d0574156f Binary files /dev/null and b/assets/Seahorse_Rash_Game/smokeExplosion.png differ diff --git a/assets/images/Pixel_Painter.png b/assets/images/Pixel_Painter.png index a778aeef8a..5452499cd2 100644 Binary files a/assets/images/Pixel_Painter.png and b/assets/images/Pixel_Painter.png differ diff --git a/assets/images/Screenshot 2024-06-02 235531.png b/assets/images/Screenshot 2024-06-02 235531.png new file mode 100644 index 0000000000..88ca5e2e04 Binary files /dev/null and b/assets/images/Screenshot 2024-06-02 235531.png differ