diff --git a/Games/Dsa_quiz_game/README.md b/Games/Dsa_quiz_game/README.md new file mode 100644 index 0000000000..1fc0f26a1a --- /dev/null +++ b/Games/Dsa_quiz_game/README.md @@ -0,0 +1,37 @@ +# **Dsa_quiz_game** + +--- + +
+ +## **Description 📃** + +-The DSA Quiz Game is for educational purposes and contains DSA problems. +-It will help strengthen concepts. +-Increase your self-confidence. +-Easy to play. + +## **functionalities 🎮** + +-Contains 50+ DSA questions. +-Randomly selects any 10 questions. +-Shows results after the game. +-Displays the correct answer if your answer is wrong. + +
+ +## **How to play? 🕹ī¸** +-Start by selecting any one option. The game will show you the correct answer if your answer is wrong. + + +
+ +## **Screenshots 📸** + +
+![image](../../assets/images/Dsa_quiz1.png) +![image](../../assets/images/Dsa_quiz2.png) + +
+ + diff --git a/Games/Dsa_quiz_game/index.html b/Games/Dsa_quiz_game/index.html new file mode 100644 index 0000000000..2b9c36c0c3 --- /dev/null +++ b/Games/Dsa_quiz_game/index.html @@ -0,0 +1,26 @@ + + + + + + + Quizz App + + +
+

Simple Quiz

+
+

This is Question

+
+ + + + +
+ +
+
+ + + + \ No newline at end of file diff --git a/Games/Dsa_quiz_game/script.js b/Games/Dsa_quiz_game/script.js new file mode 100644 index 0000000000..52981b7406 --- /dev/null +++ b/Games/Dsa_quiz_game/script.js @@ -0,0 +1,414 @@ +const questions = [ + { + question: "What is the time complexity of accessing an element in an array by its index?", + answers: [ + {text: "O(1)", correct: true}, + {text: "O(n)", correct: false}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "What data structure is a Last-In-First-Out (LIFO) data structure?", + answers: [ + {text: "Stack", correct: true}, + {text: "Queue", correct: false}, + {text: "Linked List", correct: false}, + {text: "Tree", correct: false}, + ] + }, + { + question: "What is the time complexity of inserting an element at the end of an array?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(n)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure uses First-In-First-Out (FIFO) ordering?", + answers: [ + {text: "Queue", correct: true}, + {text: "Stack", correct: false}, + {text: "Linked List", correct: false}, + {text: "Tree", correct: false}, + ] + }, + { + question: "What is the time complexity of inserting an element at the beginning of an array?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(n)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure organizes elements in a hierarchical structure?", + answers: [ + {text: "Tree", correct: true}, + {text: "Stack", correct: false}, + {text: "Queue", correct: false}, + {text: "Linked List", correct: false}, + ] + }, + { + question: "What is the time complexity of searching for an element in a binary search tree?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(n)", correct: false}, + {text: "O(log n)", correct: true}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure allows elements to be accessed in a LIFO (Last-In-First-Out) manner?", + answers: [ + {text: "Stack", correct: true}, + {text: "Queue", correct: false}, + {text: "Linked List", correct: false}, + {text: "Tree", correct: false}, + ] + }, + { + question: "What is the time complexity of inserting an element in the middle of an array?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(n)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure does not have a fixed size?", + answers: [ + {text: "Linked List", correct: true}, + {text: "Stack", correct: false}, + {text: "Queue", correct: false}, + {text: "Tree", correct: false}, + ] + }, + { + question: "What is the time complexity of inserting an element at the end of a linked list?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(n)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure allows elements to be accessed in a FIFO (First-In-First-Out) manner?", + answers: [ + {text: "Queue", correct: true}, + {text: "Stack", correct: false}, + {text: "Linked List", correct: false}, + {text: "Tree", correct: false}, + ] + }, + { + question: "What is the time complexity of deleting an element at the beginning of a linked list?", + answers: [ + {text: "O(1)", correct: true}, + {text: "O(n)", correct: false}, + {text: "O(log n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure represents a collection of elements, each identified by at least one array index or key?", + answers: [ + {text: "Array", correct: true}, + {text: "Linked List", correct: false}, + {text: "Queue", correct: false}, + {text: "Stack", correct: false}, + ] + }, + { + question: "What is the time complexity of finding an element in a hash table?", + answers: [ + {text: "O(1)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure allows for constant time insertion and deletion of elements at both ends?", + answers: [ + {text: "Deque", correct: true}, + {text: "Linked List", correct: false}, + {text: "Queue", correct: false}, + {text: "Stack", correct: false}, + ] + }, + { + question: "What is the time complexity of finding an element in a sorted array using binary search?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(log n)", correct: true}, + {text: "O(n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure follows the Last-In-First-Out (LIFO) principle?", + answers: [ + {text: "Stack", correct: true}, + {text: "Queue", correct: false}, + {text: "Deque", correct: false}, + {text: "Linked List", correct: false}, + ] + }, + { + question: "What is the time complexity of appending an element to the end of a dynamic array (with resizing)?", + answers: [ + {text: "O(1)", correct: false}, + {text: "O(log n)", correct: false}, + {text: "O(n)", correct: false}, + {text: "Amortized O(1)", correct: true}, + ] + }, + { + question: "Which data structure is based on the principle of First-In-First-Out (FIFO)?", + answers: [ + {text: "Queue", correct: true}, + {text: "Stack", correct: false}, + {text: "Deque", correct: false}, + {text: "Linked List", correct: false}, + ] + }, + { + question: "What is the time complexity of finding the minimum (or maximum) element in a min (or max) heap?", + answers: [ + {text: "O(1)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "Which data structure can be used to efficiently implement a priority queue?", + answers: [ + {text: "Heap", correct: true}, + {text: "Stack", correct: false}, + {text: "Queue", correct: false}, + {text: "Linked List", correct: false}, + ] + }, + { + question: "What is the time complexity of inserting an element at the beginning of a linked list?", + answers: [ + {text: "O(1)", correct: true}, + {text: "O(log n)", correct: false}, + {text: "O(n)", correct: false}, + {text: "O(n^2)", correct: false}, + ] + }, + { + question: "What is the purpose of a linked list?", + answers: [ + {text: "To store data in a linear structure with a dynamic size", correct: true}, + {text: "To sort data efficiently", correct: false}, + {text: "To implement recursive algorithms", correct: false}, + {text: "To perform mathematical operations", correct: false}, + ] + }, + { + question: "What is a stack?", + answers: [ + {text: "A data structure that follows the Last-In-First-Out (LIFO) principle", correct: true}, + {text: "A data structure that follows the First-In-First-Out (FIFO) principle", correct: false}, + {text: "A data structure that organizes elements in a hierarchical structure", correct: false}, + {text: "A data structure that allows elements to be accessed in any order", correct: false}, + ] + }, + { + question: "What is the purpose of a binary heap?", + answers: [ + {text: "To implement priority queues efficiently", correct: true}, + {text: "To sort data in ascending order", correct: false}, + {text: "To perform recursive algorithms", correct: false}, + {text: "To store key-value pairs for efficient retrieval", correct: false}, + ] + }, + { + question: "What is a binary tree?", + answers: [ + {text: "A tree data structure in which each node has at most two children", correct: true}, + {text: "A tree data structure in which each node has exactly two children", correct: false}, + {text: "A tree data structure with more than two children per node", correct: false}, + {text: "A tree data structure with no children", correct: false}, + ] + }, + { + question: "What is a binary search tree (BST)?", + answers: [ + {text: "A binary tree in which the left subtree of a node contains only nodes with keys less than the node's key and the right subtree contains only nodes with keys greater than the node's key", correct: true}, + {text: "A binary tree that is sorted in descending order", correct: false}, + {text: "A binary tree that contains duplicate nodes", correct: false}, + {text: "A binary tree in which every node has exactly two children", correct: false}, + ] + }, + { + question: "What is a balanced binary tree?", + answers: [ + {text: "A binary tree in which the height of the left and right subtrees of any node differ by at most one", correct: true}, + {text: "A binary tree that contains only nodes with even keys", correct: false}, + {text: "A binary tree in which every node has exactly two children", correct: false}, + {text: "A binary tree in which all leaf nodes are at the same level", correct: false}, + ] + }, + { + question: "What is a graph?", + answers: [ + {text: "A data structure that consists of a set of nodes (vertices) and a set of edges that connect pairs of nodes", correct: true}, + {text: "A data structure that represents hierarchical relationships between elements", correct: false}, + {text: "A data structure used for storing key-value pairs", correct: false}, + {text: "A data structure that allows for efficient search, insertion, and deletion operations", correct: false}, + ] + }, + { + question: "What is a directed graph?", + answers: [ + {text: "A graph in which the edges have a direction, indicating a one-way connection between nodes", correct: true}, + {text: "A graph in which all nodes are connected to each other", correct: false}, + {text: "A graph in which the edges have weights assigned to them", correct: false}, + {text: "A graph in which the edges do not have a direction, indicating a two-way connection between nodes", correct: false}, + ] + }, + { + question: "What is a weighted graph?", + answers: [ + {text: "A graph in which each edge is assigned a numerical value, called a weight", correct: true}, + {text: "A graph in which the nodes have different sizes", correct: false}, + {text: "A graph in which the nodes have different colors", correct: false}, + {text: "A graph in which each edge is assigned a direction", correct: false}, + ] + }, + { + question: "What is the adjacency matrix of a graph?", + answers: [ + {text: "A two-dimensional array where the value at index [i][j] represents whether there is an edge from node i to node j", correct: true}, + {text: "A tree data structure used for storing key-value pairs", correct: false}, + {text: "A data structure that represents hierarchical relationships between elements", correct: false}, + {text: "A data structure used for representing binary trees", correct: false}, + ] + }, + { + question: "What is the depth-first search (DFS) algorithm used for in graphs?", + answers: [ + {text: "To explore as far as possible along each branch before backtracking", correct: true}, + {text: "To find the shortest path between two nodes in a weighted graph", correct: false}, + {text: "To find the minimum spanning tree of a graph", correct: false}, + {text: "To find the topological ordering of a directed acyclic graph (DAG)", correct: false}, + ] + }, + { + question: "What is the breadth-first search (BFS) algorithm used for in graphs?", + answers: [ + {text: "To explore all the neighbor nodes at the present depth before moving on to the nodes at the next depth level", correct: true}, + {text: "To find the shortest path between two nodes in a weighted graph", correct: false}, + {text: "To find the minimum spanning tree of a graph", correct: false}, + {text: "To find the topological ordering of a directed acyclic graph (DAG)", correct: false}, + ] + }, + { + question: "What is a spanning tree of a graph?", + answers: [ + {text: "A subgraph that is a tree and includes all the vertices of the original graph", correct: true}, + {text: "A tree data structure used for storing key-value pairs", correct: false}, + {text: "A data structure that represents hierarchical relationships between elements", correct: false}, + {text: "A data structure used for representing binary trees", correct: false}, + ] + } + +]; +const questionElement = document.getElementById('question'); +const answerButtons = document.getElementById('answer-btn'); +const nextButton = document.getElementById('next-btn'); +let currentquinx = 0; +let score = 0; +let shuffledQuestions = []; + +function startquiz() { + currentquinx = 0; + score = 0; + nextButton.innerHTML = "Next"; + shuffledQuestions = questions.sort(() => Math.random() - 0.5).slice(0, 10); // Shuffle and select 10 questions + ShowQuestion(); +} + +function ShowQuestion() { + resetState(); + let currentque = shuffledQuestions[currentquinx]; + let questionNo = currentquinx + 1; + questionElement.innerHTML = questionNo + ". " + currentque.question; + currentque.answers.forEach(answer => { + const button = document.createElement('button'); + button.innerHTML = answer.text; + button.classList.add("btn"); + button.addEventListener('click', () => checkAnswer(answer.correct)); + answerButtons.appendChild(button); + if(answer.correct) { + button.dataset.correct = answer.correct; + } + button.addEventListener("click", selectAnswer); + + }) +} + +function resetState() { + nextButton.style.display = 'none'; + while (answerButtons.firstChild) { + answerButtons.removeChild(answerButtons.firstChild); + } +} + +function selectAnswer(e) { + const selectedBtn = e.target; + const isCorrect = selectedBtn.dataset.correct === "true"; + + if (isCorrect) { + selectedBtn.classList.add("correct"); + score++; + } else { + selectedBtn.classList.add("incorrect"); + } + + Array.from(answerButtons.children).forEach(button => { + if (button.dataset.correct === "true") { + button.classList.add("correct"); + } + button.disabled = true; + }); + + nextButton.style.display = "block"; +} + +function ShowScore() { + resetState(); + questionElement.innerHTML = `You scored ${score} out of ${shuffledQuestions.length} !`; + nextButton.innerHTML = "Play Again"; + nextButton.style.display = "block"; +} + +function handleNextButton() { + currentquinx++; + if(currentquinx < shuffledQuestions.length) { + ShowQuestion(); + } else { + ShowScore(); + } +} + +nextButton.addEventListener("click", () => { + if(currentquinx < shuffledQuestions.length) { + handleNextButton(); + } else { + startquiz(); + } +}); + +startquiz(); diff --git a/Games/Dsa_quiz_game/style.css b/Games/Dsa_quiz_game/style.css new file mode 100644 index 0000000000..3fd9887f5c --- /dev/null +++ b/Games/Dsa_quiz_game/style.css @@ -0,0 +1,83 @@ +* +{ + margin: 0; + padding: 0; + font-family: 'Poppins',sans-serif; + box-sizing: border-box; +} +body +{ + background: #001e4d; + +} +.app +{ + background: #fff; + width: 90%; + max-width: 600px; + margin: 100px auto 0; + border-radius: 10px; + padding: 30px; +} +.app h1 +{ + font-weight: 25px; + color: #001e4d; + font-weight: 600px; + border-bottom: 1px solid #333; + padding-bottom: 30px; +} +.quiz +{ + padding: 20px 0; +} +.quiz h2 +{ + font-size: 18px; + color: #001e4d; + font-weight: 600px; +} +.btn +{ + background: #fff; + color: #222; + font-weight: 500px; + width: 100%; + border: 1px solid #222; + padding: 10px; + margin: 10px 0; + text-align: left; + border-radius: 4px; + cursor: pointer; + transition:all 0.5s; +} + +.btn:hover:not([disabled]) { + background: #222; + color: #fff; +} + +.btn:disabled { + cursor: no-drop; +} +#next-btn +{ + background: #001e4d; + color: #fff; + font-weight: 500px; + width: 150px; + border:0; + padding: 10px; + margin: 20px auto 0; + border-radius: 4px; + cursor: pointer; + display: none; +} +.correct +{ + background: #9aeabc; +} +.incorrect +{ + background: #ff9393; +} \ No newline at end of file diff --git a/Games/Gravity_Simulation_Game/README.md b/Games/Gravity_Simulation_Game/README.md new file mode 100644 index 0000000000..a20659d485 --- /dev/null +++ b/Games/Gravity_Simulation_Game/README.md @@ -0,0 +1,15 @@ +# **Gravity_Simulation_Game** + +## **Description 📃** +Observe and Differentiate between the gravitational fields of Sun, Mercury, Venus, Earth, Moon, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto. +
+## **How to play? 🕹ī¸** +First the user needs to select a celestial body of our solar system among the given options. Then a simulation of various balls of various shapes and colors colliding with each other and jumping under the influence of gravity is shown, until all the balls come at rest at the floor. +This way user can feel and enjoy the diverse gravitation of the planetary bodies our solar system. +
+## **Screenshots 📸** +![ss5](https://github.com/Sara1428/GameZone/assets/146193518/eec47058-4532-49e3-8cbe-2f1893fd5ad4) +
+## **Working video 📹** +https://github.com/Sara1428/GameZone/assets/146193518/8bfecb13-40d2-4d5e-b7e4-e47325c60293 + diff --git a/Games/Gravity_Simulation_Game/index.html b/Games/Gravity_Simulation_Game/index.html new file mode 100644 index 0000000000..7e1b92f56f --- /dev/null +++ b/Games/Gravity_Simulation_Game/index.html @@ -0,0 +1,32 @@ + + + + + + + +

Enjoy Gravity !

+

Select a Celestial Body from below

+
+ Sun + Mercury + Venus + Earth + Moon + Mars + Jupiter + Saturn + Uranus + Neptune + Pluto +
+
+ +
+
+ +

+ + + + \ No newline at end of file diff --git a/Games/Gravity_Simulation_Game/script.js b/Games/Gravity_Simulation_Game/script.js new file mode 100644 index 0000000000..f618b90529 --- /dev/null +++ b/Games/Gravity_Simulation_Game/script.js @@ -0,0 +1,153 @@ +// Learn to code this at: +// https://www.youtube.com/watch?v=3b7FyIxWW94 + +// Initial Setup +document.getElementById('bt').addEventListener('click', function(){ + location.reload(); +}) +document.getElementById('btn').addEventListener('click', function(){ + location.reload(); +}) +document.getElementById('b').addEventListener('click', function(){ +var canvas = document.querySelector('canvas'); +var c = canvas.getContext('2d'); + +canvas.width = innerWidth; +canvas.height = innerHeight/2; + + +// Variables +var mouse = { + x: innerWidth / 2, + y: innerHeight / 2 +}; + +var colors = [ + 'rgb(235, 1, 40)', + 'white', + 'black', + 'pink' +]; + +var gravity = 0.2; +var x = document.getElementsByName('opt'); +var friction = 0.98; +if(x[0].checked) + gravity=27.4; +if(x[1].checked) + gravity=0.37; +if(x[2].checked) + gravity=0.89; +if(x[3].checked) + gravity=0.98; +if(x[4].checked) + gravity=0.162; +if(x[5].checked) + gravity=0.37; +if(x[6].checked) + gravity=2.31; +if(x[7].checked) + gravity=0.9; +if(x[8].checked) + gravity=0.87; +if(x[9].checked) + gravity=1.1; +if(x[10].checked) + gravity=0.07; + +document.getElementById('dd').style.display='none'; +addEventListener("mousemove", function(event) { + mouse.x = event.clientX; + mouse.y = event.clientY; +}); + +addEventListener("resize", function() { + canvas.width = innerWidth; + canvas.height = innerHeight; + init(); +}); + +addEventListener("click", function(event) { + init(); +}); + + +// Utility Functions +function randomIntFromRange(min,max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} + +function randomColor(colors) { + return colors[Math.floor(Math.random() * colors.length)]; +} + + +// Objects +function Ball(x, y, dx, dy, radius, color) { + this.x = x; + this.y = y; + this.dx = dx; + this.dy = dy; + this.radius = radius; + this.color = color; + + this.update = function() { + if (this.y + this.radius + this.dy> canvas.height) { + this.dy = -this.dy; + this.dy = this.dy * friction; + this.dx = this.dx * friction; + } else { + this.dy += gravity; + } + + if (this.x + this.radius >= canvas.width || this.x - this.radius <= 0) { + this.dx = -this.dx * friction; + } + + this.x += this.dx; + this.y += this.dy; + this.draw(); + }; + + this.draw = function() { + c.beginPath(); + c.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false); + c.fillStyle = this.color; + c.fill(); + c.stroke(); + c.closePath(); + }; +} + + +// Implementation +var ballArray = []; + +function init() { + ballArray = []; + + for (let i = 0; i < 600; i++) { + var radius = randomIntFromRange(8, 20); + var x = randomIntFromRange(radius, canvas.width - radius); + var y = randomIntFromRange(0, canvas.height - radius); + var dx = randomIntFromRange(-3, 3) + var dy = randomIntFromRange(-2, 2) + ballArray.push(new Ball(x, y, dx, dy, radius, randomColor(colors))); + } +} + +// Animation Loop +function animate() { + requestAnimationFrame(animate); + + c.clearRect(0, 0, canvas.width, canvas.height); + + for (let i = 0; i < ballArray.length; i++) { + ballArray[i].update(); + } +} + +init(); +animate(); +} +) \ No newline at end of file diff --git a/Games/Gravity_Simulation_Game/style.css b/Games/Gravity_Simulation_Game/style.css new file mode 100644 index 0000000000..424932852d --- /dev/null +++ b/Games/Gravity_Simulation_Game/style.css @@ -0,0 +1,78 @@ +/* body { + margin: 0; + overflow: hidden; + } */ + + @media only screen and (min-width: 600px) { + canvas{ + margin: auto; + } +h1,h3{ + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + text-align: center; + color: rgb(243, 63, 63); +} +#dd{ + color: rgb(245, 53, 53); + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 1em; + padding: 0px 260px; +} +input{ + accent-color: rgb(240, 61, 91); +} + + +button{ + display: block; + margin: auto; + margin-bottom: 0px; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + border: 2px solid rgb(235, 1, 40); + background-color: white; + cursor: pointer; + transition-duration: 0.5s; +} + +button:hover{ + background-color: rgb(236, 36, 36); + color: white; +} + } + + @media only screen and (max-width: 600px) { + canvas{ + margin: auto; + } + h1,h3{ + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + text-align: center; + color: rgb(243, 63, 63); + } + #dd{ + color: rgb(245, 53, 53); + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 1em; + padding: 0px; + } + input{ + accent-color: rgb(240, 61, 91); + } + + + button{ + display: block; + margin: auto; + margin-bottom: 0px; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + border: 2px solid rgb(235, 1, 40); + background-color: white; + cursor: pointer; + transition-duration: 0.5s; + } + + button:hover{ + background-color: rgb(236, 36, 36); + color: white; + } + } diff --git a/Games/Master_Typing/README.md b/Games/Master_Typing/README.md index a35a28d628..158e7a14d1 100644 --- a/Games/Master_Typing/README.md +++ b/Games/Master_Typing/README.md @@ -38,3 +38,4 @@ [Video](https://i.imgur.com/w56sUaV.mp4) [Video] (https://imgur.com/a/uxx8hlM) + diff --git a/Games/Physics_Quizz/README.md b/Games/Physics_Quizz/README.md new file mode 100644 index 0000000000..57ce18a954 --- /dev/null +++ b/Games/Physics_Quizz/README.md @@ -0,0 +1,25 @@ +# **Physics Quiz** + + +## **Description 📃** +It is a basic Physics Questions Quiz. + + +
+ +## **Functionalities 🎮** + +Player need to find the correct answer to the maximum number of questions within 1 minute/60 seconds. + +
+ +## **How to play? 🕹ī¸** + +1. Start the quiz on your preferred platform. +2. Click on the Start Quiz button to start the quiz. +3. Your goal is to answer maximum number of questions within 60 seconds. +
+ + +## **Screenshots 📸** +![image](https://github.com/kunjgit/GameZone/assets/168436423/d76615f7-7a71-4178-b54f-d07dbb47cd42) \ No newline at end of file diff --git a/Games/Physics_Quizz/assets/background_image.jpeg b/Games/Physics_Quizz/assets/background_image.jpeg new file mode 100644 index 0000000000..5098048648 Binary files /dev/null and b/Games/Physics_Quizz/assets/background_image.jpeg differ diff --git a/Games/Physics_Quizz/index.html b/Games/Physics_Quizz/index.html new file mode 100644 index 0000000000..694fd6dc01 --- /dev/null +++ b/Games/Physics_Quizz/index.html @@ -0,0 +1,26 @@ + + + + + Quiz App + + + + +
+

Physics Quiz Game

+
+

+
+
+
+ +
+ Time Left: 0 +
+
+
+ + + + \ No newline at end of file diff --git a/Games/Physics_Quizz/script.js b/Games/Physics_Quizz/script.js new file mode 100644 index 0000000000..7d93152600 --- /dev/null +++ b/Games/Physics_Quizz/script.js @@ -0,0 +1,186 @@ +const quizQuestions = [ + { + question: "A substance which takes the shape of its container and has a definite volume is a ", + options: ["solid", "liquid", "gas", "crystal"], + correctAnswer: "liquid" + }, + { + question: "What happens to a gas when the temperature decreases ", + options: ["It expands", "It rises.", "It condenses", "It becomes less dense."], + correctAnswer: "It condenses" + }, + { + question: "Any material that does not allow heat to pass through it easily is called ", + options: ["conductor", "expand", "contract", "insulator"], + correctAnswer: "insulator" + }, + { + question: "A material through which heat and electricity flow easily is called ", + options: ["Resistancer", "conductor", "Short circuit", "insulator"], + correctAnswer: "conductor" + }, + { + question: "If you were on the Moon, there would be a change in your ", + options: ["weight and mass", "weight", "mass", "voulme"], + correctAnswer: "weight" + }, + { + question: "The process by which a liquid changes to a gas is called ", + options: ["evaporation", "condensation", "precipitation", "transpiration"], + correctAnswer: "evaporation" + }, + { + question: "The ability to do work is called ", + options: ["rest", "force", "motion", "energy"], + correctAnswer: "energy" + }, + { + question: "A force that occurs when an object rubs against another object ", + options: ["friction", "conduction", "thermometer", "radiation"], + correctAnswer: "friction" + }, + { + question: "Something that makes an object start moving, stop moving, speed up, or slow down is a ", + options: ["position", "force", "effort", "load"], + correctAnswer: "force" + }, + { + question: "The buildup of electric charges in one place is called ", + options: ["Static electricity", "Electric charge", "Electric field", "Electric circuit"], + correctAnswer: "Static electricity" + }, + { + question: "The force that attracts a body toward the center of Earth, or toward any other physical body having mass.", + options: ["planet", "weightless", "gravity", "orbit"], + correctAnswer: "gravity" + }, + { + question: "The atoms in which state shake, but don't move freely?", + options: ["liquid", "solid", "gas", "mixture"], + correctAnswer: "solid" + }, + { + question: "An example of a gas is ", + options: ["chocolate syrup", "a rock", " a pencil", "helium"], + correctAnswer: "helium" + }, + { + question: "The temperature at which a gas becomes a liquid is called the ", + options: ["freezing point", "condensation point", "boiling point", "sublimation"], + correctAnswer: "boiling point" + }, + { + question: "Water freezes at what temperature?", + options: ["212 degrees F", "32 degrees C", "32 degrees F", "212 degrees C"], + correctAnswer: "32 degrees F" + } +]; + +// Variables to track quiz state +let currentQuestionIndex = 0; +let score = 0; +let timeLeft = 60; +let timerInterval; + +// Function to start the quiz +function startQuiz() { + document.getElementById("start-button").style.display = "none"; + displayQuestion(); + startTimer(); +} + +// Function to display a question and its options +function displayQuestion() { + const currentQuestion = quizQuestions[currentQuestionIndex]; + const questionText = document.getElementById("question-text"); + const answerButtons = document.getElementById("answer-buttons"); + + // Clear previous question and answer options + questionText.innerHTML = ""; + answerButtons.innerHTML = ""; + + // Display the current question + questionText.innerHTML = currentQuestion.question; + + // Create answer buttons for each option + currentQuestion.options.forEach(option => { + const button = document.createElement("button"); + button.innerText = option; + button.classList.add("answer-button"); + answerButtons.appendChild(button); + + // Add click event listener to check the answer + button.addEventListener("click", function () { + checkAnswer(option, button); + }); + }); +} + +// Function to check the selected answer +function checkAnswer(selectedOption, button) { + const currentQuestion = quizQuestions[currentQuestionIndex]; + const answerButtons = document.getElementById("answer-buttons"); + + // Check if the selected answer is correct + if (selectedOption === currentQuestion.correctAnswer) { + score++; + button.style.backgroundColor = "darkgreen"; + } else { + // Indicate the selected answer is wrong + button.style.backgroundColor = "red"; + + // Display the correct answer if the selected answer is incorrect + const correctAnswerElement = document.createElement("div"); + correctAnswerElement.classList.add("correct-answer"); + correctAnswerElement.innerText = `Correct Answer: ${currentQuestion.correctAnswer}`; + answerButtons.appendChild(correctAnswerElement); + } + + // Move to the next question or end the quiz after a short delay + setTimeout(() => { + currentQuestionIndex++; + if (currentQuestionIndex < quizQuestions.length) { + displayQuestion(); + } else { + endQuiz(); + } + }, 1000); +} + +// Function to start the timer +function startTimer() { + // Update the timer text immediately + document.getElementById("timer").textContent = timeLeft; + + timerInterval = setInterval(function () { + timeLeft--; + + // Update the timer text + document.getElementById("timer").textContent = timeLeft; + + // End the quiz if time runs out + if (timeLeft <= 0) { + endQuiz(); + } + }, 1000); +} + +// Function to end the quiz +function endQuiz() { + // Stop the timer + clearInterval(timerInterval); + + // Calculate the score percentage + const scorePercentage = (score / quizQuestions.length) * 100; + + // Display the final score + const questionContainer = document.getElementById("question-container"); + questionContainer.innerHTML = ` +

Quiz Completed!

+

Your Score: ${score} out of ${quizQuestions.length}

+

Score Percentage: ${scorePercentage}%

+ `; +} + + +document.getElementById("start-button").addEventListener("click", startQuiz); diff --git a/Games/Physics_Quizz/style.css b/Games/Physics_Quizz/style.css new file mode 100644 index 0000000000..bbec90d511 --- /dev/null +++ b/Games/Physics_Quizz/style.css @@ -0,0 +1,75 @@ +body { + background-color: #f2f2f2; + font-family: Arial, sans-serif; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background-image: url('./background-image/backgroundimage.jpeg'); + background-size: cover; + +} + +.quiz-container { + max-width: 500px; + background-color: #5c50dd; + border-radius: 10px; + padding: 20px; + animation: fadeIn 1s ease-in-out; + box-shadow: 0 4px 6px rgba(25, 89, 172, 0.1); + transition: box-shadow 0.3s ease-in-out; +} + +h1 { + text-align: center; + +} + +#question-container { + margin-bottom: 20px; +} + +#question-text { + font-size: 18px; + margin-bottom: 10px; +} + +#answer-buttons { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-gap: 10px; +} + +button { + height: 40px; + font-size: 16px; + background-color: #dfdedf; + border: none; + border-radius: 5px; + cursor: pointer; +} + +button:hover { + background-color: #26c488; +} + +#controls-container { + display: flex; + justify-content: space-between; + align-items: center; + font-weight: "bold"; +} + +#timer-container { + display: flex; + align-items: center; +} + +#timer-text { + font-size: 14px; +} + +#timer { + font-weight: bold; + margin-left: 5px; +} \ No newline at end of file diff --git a/Games/Taash Game/README.md b/Games/Taash Game/README.md new file mode 100644 index 0000000000..747d250379 --- /dev/null +++ b/Games/Taash Game/README.md @@ -0,0 +1,12 @@ +# Taash Game +The player has to get a hand with a value as close to 21 as possible without going over. +A hand that goes over 21 is a bust. +The players in a Taash Game plays against the dealer. Each player has to beat the dealer's hand in order to win. + +In Taash Game, the suits have no meaning. +1. Number cards have a value equal to their number. +2. All the picture cards (Jacks, Queens, and Kings) are worth 10. +3. Aces are worth 1. +4. The table keeps a record of total wins,loses and draws +5. Click on "Restart" Button to start a new game +6. Click on "Deal" Button to clear the field diff --git a/Games/Taash Game/images/10.png b/Games/Taash Game/images/10.png new file mode 100644 index 0000000000..01be5daa37 Binary files /dev/null and b/Games/Taash Game/images/10.png differ diff --git a/Games/Taash Game/images/2.png b/Games/Taash Game/images/2.png new file mode 100644 index 0000000000..2f1d24063f Binary files /dev/null and b/Games/Taash Game/images/2.png differ diff --git a/Games/Taash Game/images/3.png b/Games/Taash Game/images/3.png new file mode 100644 index 0000000000..7c804ae15b Binary files /dev/null and b/Games/Taash Game/images/3.png differ diff --git a/Games/Taash Game/images/4.png b/Games/Taash Game/images/4.png new file mode 100644 index 0000000000..ea50674261 Binary files /dev/null and b/Games/Taash Game/images/4.png differ diff --git a/Games/Taash Game/images/5.png b/Games/Taash Game/images/5.png new file mode 100644 index 0000000000..f456f1e71d Binary files /dev/null and b/Games/Taash Game/images/5.png differ diff --git a/Games/Taash Game/images/6.png b/Games/Taash Game/images/6.png new file mode 100644 index 0000000000..46b86bcc59 Binary files /dev/null and b/Games/Taash Game/images/6.png differ diff --git a/Games/Taash Game/images/7.png b/Games/Taash Game/images/7.png new file mode 100644 index 0000000000..1a21883717 Binary files /dev/null and b/Games/Taash Game/images/7.png differ diff --git a/Games/Taash Game/images/8.png b/Games/Taash Game/images/8.png new file mode 100644 index 0000000000..277705b131 Binary files /dev/null and b/Games/Taash Game/images/8.png differ diff --git a/Games/Taash Game/images/9.png b/Games/Taash Game/images/9.png new file mode 100644 index 0000000000..b3fdc074b0 Binary files /dev/null and b/Games/Taash Game/images/9.png differ diff --git a/Games/Taash Game/images/A.png b/Games/Taash Game/images/A.png new file mode 100644 index 0000000000..bb25fee819 Binary files /dev/null and b/Games/Taash Game/images/A.png differ diff --git a/Games/Taash Game/images/J.png b/Games/Taash Game/images/J.png new file mode 100644 index 0000000000..7960a94e7a Binary files /dev/null and b/Games/Taash Game/images/J.png differ diff --git a/Games/Taash Game/images/K.png b/Games/Taash Game/images/K.png new file mode 100644 index 0000000000..c9d1c990ea Binary files /dev/null and b/Games/Taash Game/images/K.png differ diff --git a/Games/Taash Game/images/Q.png b/Games/Taash Game/images/Q.png new file mode 100644 index 0000000000..6499247e29 Binary files /dev/null and b/Games/Taash Game/images/Q.png differ diff --git a/Games/Taash Game/index.html b/Games/Taash Game/index.html new file mode 100644 index 0000000000..2d05937546 --- /dev/null +++ b/Games/Taash Game/index.html @@ -0,0 +1,62 @@ + + + + + Taash Game + + + + + +
+

Taash Game

+

Let's Play

+ +
+
+

You: 0

+
+ +
+

Dealer: 0

+
+
+ +
+
+ + + + +
+
+
+ + + + + + + + + + + + +
WinLoseDraw
000
+
+
+ + + diff --git a/Games/Taash Game/script.js b/Games/Taash Game/script.js new file mode 100644 index 0000000000..b38f56eeed --- /dev/null +++ b/Games/Taash Game/script.js @@ -0,0 +1,250 @@ +let blackjackGame = { + you: { + scoreSpan: "#your-blackjack-result", + div: "#your-box", + boxSize: ".flex-blackjack-row-2 div", + score: 0, + }, + + dealer: { + scoreSpan: "#dealer-blackjack-result", + div: "#dealer-box", + boxSize: ".flex-blackjack-row-2 div", + score: 0, + }, + + cards: ["2", "3", "4", "5", "6", "7", "8", "9", "10", "K", "J", "Q", "A"], + + cardsMap: { + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + 10: 10, + K: 10, + J: 10, + Q: 10, + A: [1, 11], + }, + + wins: 0, + losses: 0, + draws: 0, + isStand: false, + isTurnsOver: false, + pressOnce: false, +}; + +const YOU = blackjackGame["you"]; +const DEALER = blackjackGame["dealer"]; + +const hitSound = new Audio("sounds/swish.m4a"); +const winSound = new Audio("sounds/cash.mp3"); +const loseSound = new Audio("sounds/aww.mp3"); + +let windowWidth = window.screen.width; +let windowHeight = window.screen.height; +let winner; + +//Button Event Listeners +document + .querySelector("#blackjack-hit-button") + .addEventListener("click", blackjackHit); +document + .querySelector("#blackjack-stand-button") + .addEventListener("click", blackjackStand); +document + .querySelector("#blackjack-deal-button") + .addEventListener("click", blackjackDeal); +document + .querySelector("#blackjack-reset-button") + .addEventListener("click", blackjackRestart); + +function blackjackHit() { + if (blackjackGame["isStand"] === false) { + let card = randomCard(); + showCard(card, YOU); + updateScore(card, YOU); + showScore(YOU); + } +} + +function randomCard() { + let randomIndex = Math.floor(Math.random() * 13); + return blackjackGame["cards"][randomIndex]; +} + +function showCard(card, activePlayer) { + if (activePlayer["score"] <= 21) { + let cardImage = document.createElement("img"); + cardImage.src = `images/${card}.png`; + cardImage.style = `width:${widthSize()}; height:${heightSize()};`; + document.querySelector(activePlayer["div"]).appendChild(cardImage); + hitSound.play(); + } +} + +function widthSize() { + if (windowWidth > 1000) { + let newWidthSize = window.screen.width * 0.1; + return newWidthSize; + } else { + return window.screen.width * 0.18; + } +} + +function heightSize() { + if (windowHeight > 700) { + let newHeightSize = window.screen.height * 0.18; + return newHeightSize; + } else { + return window.screen.height * 0.15; + } +} + +function updateScore(card, activePlayer) { + if (card === "A") { + if (activePlayer["score"] + blackjackGame["cardsMap"][card][1] <= 21) { + activePlayer["score"] += blackjackGame["cardsMap"][card][1]; + } else { + activePlayer["score"] += blackjackGame["cardsMap"][card][0]; + } + } else { + activePlayer["score"] += blackjackGame["cardsMap"][card]; + } + + console.log(activePlayer["score"]); +} + +function showScore(activePlayer) { + //Bust logic if score is over 21 + if (activePlayer["score"] > 21) { + document.querySelector(activePlayer["scoreSpan"]).textContent = "BUST!"; + document.querySelector(activePlayer["scoreSpan"]).style.color = "red"; + } else { + document.querySelector(activePlayer["scoreSpan"]).textContent = + activePlayer["score"]; + } +} + +function blackjackStand() { + if (blackjackGame.pressOnce === false) { + blackjackGame["isStand"] = true; + let yourImages = document + .querySelector("#your-box") + .querySelectorAll("img"); + + for (let i = 0; i < yourImages.length; i++) { + let card = randomCard(); + showCard(card, DEALER); + updateScore(card, DEALER); + showScore(DEALER); + } + + blackjackGame["isTurnsOver"] = true; + + computeWinner(); + showWinner(winner); + } + + blackjackGame.pressOnce = true; +} + +function computeWinner() { + if (YOU["score"] <= 21) { + if (YOU["score"] > DEALER["score"] || DEALER["score"] > 21) { + winner = YOU; + } else if (YOU["score"] < DEALER["score"]) { + winner = DEALER; + } else if (YOU["score"] === DEALER["score"]) { + winner = "Draw"; + } + } else if (YOU["score"] > 21 && DEALER["score"] <= 21) { + winner = DEALER; + } else if (YOU["score"] > 21 && DEALER["score"] > 21) { + winner = "None"; + } + + return winner; +} + +function showWinner(winner) { + let message, messageColor; + + if (winner === YOU) { + message = "You Won"; + messageColor = "#00e676"; + document.querySelector("#wins").textContent = blackjackGame["wins"] += 1; + winSound.play(); + } else if (winner === DEALER) { + message = "You Lost"; + messageColor = "red"; + document.querySelector("#losses").textContent = blackjackGame[ + "losses" + ] += 1; + loseSound.play(); + } else if (winner === "Draw") { + message = "You Drew"; + messageColor = "yellow"; + document.querySelector("#draws").textContent = blackjackGame["draws"] += 1; + loseSound.play(); + } else if (winner === "None") { + message = "You Both Busted!"; + messageColor = "orange"; + loseSound.play(); + } + + document.querySelector("#blackjack-result").textContent = message; + document.querySelector("#blackjack-result").style.color = messageColor; +} + +function blackjackDeal() { + if (blackjackGame["isTurnsOver"] === true) { + // Select all the images in both the user and dealer box + let yourImages = document + .querySelector("#your-box") + .querySelectorAll("img"); + let dealerImages = document + .querySelector("#dealer-box") + .querySelectorAll("img"); + + document.querySelector("#blackjack-result").style.color = "white"; + + //Sets the user and dealers scors to zero + YOU["score"] = DEALER["score"] = 0; + document.querySelector("#your-blackjack-result").textContent = 0; + document.querySelector("#dealer-blackjack-result").textContent = 0; + + //Reset color back to white + document.querySelector("#your-blackjack-result").style.color = "white"; + document.querySelector("#dealer-blackjack-result").style.color = "white"; + + //Reset to Let's Play + document.querySelector("#blackjack-result").textContent = "Lets Play"; + + //Removes the cards in the user's box + for (let i = 0; i < yourImages.length; i++) { + yourImages[i].remove(); + dealerImages[i].remove(); + } + + blackjackGame["isStand"] = false; + blackjackGame.pressOnce = false; + blackjackGame["isTurnsOver"] = false; + } +} + +function blackjackRestart() { + blackjackDeal(); + document.querySelector("#wins").textContent = 0; + document.querySelector("#losses").textContent = 0; + document.querySelector("#draws").textContent = 0; + + blackjackGame.wins = 0; + blackjackGame.losses = 0; + blackjackGame.draws = 0; +} diff --git a/Games/Taash Game/sounds/aww.mp3 b/Games/Taash Game/sounds/aww.mp3 new file mode 100644 index 0000000000..1a57bae92e Binary files /dev/null and b/Games/Taash Game/sounds/aww.mp3 differ diff --git a/Games/Taash Game/sounds/cash.mp3 b/Games/Taash Game/sounds/cash.mp3 new file mode 100644 index 0000000000..0aa9e10e6f Binary files /dev/null and b/Games/Taash Game/sounds/cash.mp3 differ diff --git a/Games/Taash Game/sounds/clap.mp3 b/Games/Taash Game/sounds/clap.mp3 new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/Games/Taash Game/sounds/clap.mp3 @@ -0,0 +1 @@ + diff --git a/Games/Taash Game/sounds/swish.m4a b/Games/Taash Game/sounds/swish.m4a new file mode 100644 index 0000000000..1e27ba6840 Binary files /dev/null and b/Games/Taash Game/sounds/swish.m4a differ diff --git a/Games/Taash Game/style.css b/Games/Taash Game/style.css new file mode 100644 index 0000000000..f0ce85e2cc --- /dev/null +++ b/Games/Taash Game/style.css @@ -0,0 +1,65 @@ +body { + background: url("https://images.pexels.com/photos/956999/milky-way-starry-sky-night-sky-star-956999.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"); + background-repeat: no-repeat; + background-size: cover; + + padding:10px; +} + + +.container { + margin: 0 auto; + text-align: center; + color: white; + width:75%; + +} + +.flex-blackjack-row-1, +.flex-blackjack-row-2, +.flex-blackjack-row-3 { + display: flex; + padding: 5px; + flex-wrap: wrap; + flex-direction: row; + justify-content: space-evenly; +} + +.flex-blackjack-row-2 div { + padding: 10px; + border: 1px solid black; + + flex: 1; + height: 350px; + text-align: center; +} + +.flex-blackjack-row-2 div img { + padding: 10px; +} + +table { + border: 3px solid black; + border-collapse: collapse; + padding:10px; + width:45%; + background-color: white; + text-align: center; +} +table td { + border: 2px solid black; +} + +.flex-blackjack-row-3 div { + padding: 5px; +} + +.flex-blackjack-row-3 button { + padding: 10 px; + margin-bottom: 10px; +} + +.flex-blackjack-row-2, .flex-blackjack-row-3{ + background-image: url(https://i.stack.imgur.com/q02th.jpg); + border: 3px solid black; +} diff --git a/Games/Whack_a_Mole/README.md b/Games/Whack_a_Mole/README.md index 8fe44ffaed..939ec8339e 100644 --- a/Games/Whack_a_Mole/README.md +++ b/Games/Whack_a_Mole/README.md @@ -35,5 +35,8 @@
![image](/Games/Whack_a_Mole/whac-a-mole%20.png) + + [Video] (https://imgur.com/a/8onaepi) +
diff --git a/Games/Whack_a_Mole/audio/game-music.mp3 b/Games/Whack_a_Mole/audio/game-music.mp3 new file mode 100644 index 0000000000..aa23091304 Binary files /dev/null and b/Games/Whack_a_Mole/audio/game-music.mp3 differ diff --git a/Games/Whack_a_Mole/audio/game-over.mp3 b/Games/Whack_a_Mole/audio/game-over.mp3 new file mode 100644 index 0000000000..1aa090c20f Binary files /dev/null and b/Games/Whack_a_Mole/audio/game-over.mp3 differ diff --git a/Games/Whack_a_Mole/index.html b/Games/Whack_a_Mole/index.html index 5caae89eb4..c1a21b52ea 100644 --- a/Games/Whack_a_Mole/index.html +++ b/Games/Whack_a_Mole/index.html @@ -19,10 +19,16 @@

Score:

0

 
- +
+ + + + + + diff --git a/Games/Whack_a_Mole/mole.css b/Games/Whack_a_Mole/mole.css index 3b4997ea9e..c0c2c6968c 100644 --- a/Games/Whack_a_Mole/mole.css +++ b/Games/Whack_a_Mole/mole.css @@ -1,43 +1,43 @@ body { - font-family: Arial, Helvetica, sans-serif; - text-align: center; - background: url("./mario-bg.jpg"); - background-size: cover; + font-family: Arial, Helvetica, sans-serif; + text-align: center; + background: url("./mario-bg.jpg"); + background-size: cover; } #board { - width: 540px; - height: 540px; - /* background-color: green; */ + width: 540px; + height: 540px; + /* background-color: green; */ - margin: 0 auto; - display: flex; - flex-wrap: wrap; + margin: 0 auto; + display: flex; + flex-wrap: wrap; - background: url("./soil.png"); - background-size: cover; - border: 3px solid white; - border-radius: 25px; + background: url("./soil.png"); + background-size: cover; + border: 3px solid white; + border-radius: 25px; } #board div { - /* board = 540 x 540, divide into 3x3 tiles --> 180 x 180 per div */ - width: 180px; - height: 180px; - background-image: url("./pipe.png"); - background-size: cover; + /* board = 540 x 540, divide into 3x3 tiles --> 180 x 180 per div */ + width: 180px; + height: 180px; + background-image: url("./pipe.png"); + background-size: cover; } #board div img { - /* all img tags inside tiles */ - width: 100px; - height: 100px; + /* all img tags inside tiles */ + width: 100px; + height: 100px; - user-select: none; - -moz-user-select: none; - -webkit-user-drag: none; - -webkit-user-select: none; - -ms-user-select: none; + user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; } .home{ background-color: aqua; @@ -48,5 +48,40 @@ body { } +.start-btn { + background-color: #0d625e; + margin-bottom: 10px; + font-size: large; + padding: 5px; + border-radius: 5px; + transition: background-color 0.3s; + color: white; + border: none; +} +.start-btn:hover { + background-color: #66d37e; + animation: move-down 0.3s; + color: black; - + } +#speed-slider { + -webkit-appearance: none; /* Override default CSS styles */ + appearance: none; + background: #45b7b8; + outline: none; + border-radius: 5px; + height: 10px; +} +#speed-slider:hover { + opacity: 10; /* Fully shown on mouse-over */ +} +#speed-slider::-webkit-slider-thumb { + -webkit-appearance: none; /* Override default look */ + appearance:circle; + width: 15px; /* Set a specific slider handle width */ + height: 15px; /* Slider handle height */ + background: #04AA6D; /* Green background */ + cursor: pointer; /* Cursor on hover */ + border-radius: 10px; +} + \ No newline at end of file diff --git a/Games/Whack_a_Mole/mole.js b/Games/Whack_a_Mole/mole.js index 9f7c2fa582..d78a8532aa 100644 --- a/Games/Whack_a_Mole/mole.js +++ b/Games/Whack_a_Mole/mole.js @@ -68,17 +68,30 @@ function setPlant() { } function selectTile() { - if (gameOver) { - return; - } - if (this == currMoleTile) { - score += 10; - document.getElementById("score").innerText = score.toString(); //update score html - } - else if (this == currPlantTile) { - document.getElementById("score").innerText = "GAME OVER: " + score.toString(); //update score html - gameOver = true; - } + if (gameOver) { + return; + } + if (this == currMoleTile) { + score += 10; + document.getElementById("score").innerText = score.toString(); //update score html + } else if (this == currPlantTile) { + let btn = document.getElementById("btn"); + btn.textContent = "Start New Game"; + document.getElementById("score").innerText = + "GAME OVER: " + score.toString(); //update score html + gameOver = true; + let backgroundMusic = document.getElementById("background-music"); + backgroundMusic.pause(); + backgroundMusic.currentTime = 0; // Rewind the music to the beginning + // Play the game over sound + let gameOverSound = document.getElementById("gameOver-music"); + gameOverSound.play(); + setTimeout(() => { + gameOverSound.pause(); + gameOverSound.currentTime = 0; // Reset to the beginning if desired + }, 3000); // 3000 milliseconds = 3 seconds + } + } @@ -105,6 +118,18 @@ function startNewGame() { resetGame(); moleIntervalId = setInterval(setMole, speed); // 1000 miliseconds = 1 second, every 1 second call setMole plantIntervalId = setInterval(setPlant, 2000); // 2000 miliseconds = 2 seconds, every 2 second call setPlant + + let gameOverSound = document.getElementById("gameOver-music"); + if (!gameOverSound.paused) { + gameOverSound.pause(); + gameOverSound.currentTime = 0; + } + + let backgroundMusic = document.getElementById("background-music"); + backgroundMusic.play(); + let btn = document.getElementById("btn"); + btn.textContent = "The game has been started!"; + document.getElementById("speed-section").style.display = "none"; } function resetGame() { diff --git a/Games/wordScramble/README.md b/Games/wordScramble/README.md new file mode 100644 index 0000000000..297880b098 --- /dev/null +++ b/Games/wordScramble/README.md @@ -0,0 +1,45 @@ + +# **Word Scramble Game** + +--- + +## **Description 📃** + +- Welcome to the Simple Word Scramble Game! It's straightforward yet addictively fun. Just unscramble the letters to reveal the hidden words. With each correct answer, you'll feel a rush of satisfaction as you unlock new levels. It's perfect for quick bursts of entertainment or a relaxing challenge anytime, anywhere and the game aims to challenge players' vocabulary and word unscrambling skills while providing an engaging and interactive experience. Dive in and test your word skills with this easy-to-play game! + +## **Functionalities 🎮** + +Game consists of following functionalities : + +
    +
  1. Upon loading the page, players are welcomed with a screen providing information about the game. Clicking the "Play Now" button redirects the player to the game page.
  2. +
  3. Players must rearrange the scrambled letters within a given time interval to form a valid word.
  4. +
  5. For every correct word player earns 10 points.
  6. +
  7. If the word entered by the player is incorrect, they lose a life. The game ends if the player loses all their lives.
  8. +
  9. The player can use the "Hint" button to reveal a hint for the current word, but this can only be used once per game.
  10. +
  11. The game progresses through levels, with each level presenting increasingly difficult words. The time limit for each word decreases as the level increases.
  12. +
  13. This is single player game.
  14. +
+ +## **How to Play? 🕹ī¸** + +- Upon visiting the website, you'll be greeted with a welcome screen. +- By clicking "Play Now," you'll be redirected to the game page. +- You'll see a scrambled word and a hint. Rearrange the letters to form a valid word and by clicking the "Check Word" button or by using "Enter" key you can see if your answer is correct or not. +- For every correct answer you earn points and for non correct answer the lives are deducted +- The game continues until all 3 lives are finished. +- After completing, you'll receive your final score and level cleared.Your score is based on the number of correct answers. + +## **Screenshots 📸** + +
+

Home Page

+ +

Game page

+ +

For Correct answer

+ +

For Wrong answer

+ +

Game Over

+ diff --git a/Games/wordScramble/assets/1.png b/Games/wordScramble/assets/1.png new file mode 100644 index 0000000000..a03fb8e96e Binary files /dev/null and b/Games/wordScramble/assets/1.png differ diff --git a/Games/wordScramble/assets/2.png b/Games/wordScramble/assets/2.png new file mode 100644 index 0000000000..7d7ba1c223 Binary files /dev/null and b/Games/wordScramble/assets/2.png differ diff --git a/Games/wordScramble/assets/3.png b/Games/wordScramble/assets/3.png new file mode 100644 index 0000000000..571e1937f4 Binary files /dev/null and b/Games/wordScramble/assets/3.png differ diff --git a/Games/wordScramble/assets/4.png b/Games/wordScramble/assets/4.png new file mode 100644 index 0000000000..62caaef731 Binary files /dev/null and b/Games/wordScramble/assets/4.png differ diff --git a/Games/wordScramble/assets/5.png b/Games/wordScramble/assets/5.png new file mode 100644 index 0000000000..16bb864f7f Binary files /dev/null and b/Games/wordScramble/assets/5.png differ diff --git a/Games/wordScramble/assets/alphabet-background.jpg b/Games/wordScramble/assets/alphabet-background.jpg new file mode 100644 index 0000000000..bc640707e8 Binary files /dev/null and b/Games/wordScramble/assets/alphabet-background.jpg differ diff --git a/Games/wordScramble/assets/background.jpg b/Games/wordScramble/assets/background.jpg new file mode 100644 index 0000000000..660bc3a5bf Binary files /dev/null and b/Games/wordScramble/assets/background.jpg differ diff --git a/Games/wordScramble/assets/correct.mp3 b/Games/wordScramble/assets/correct.mp3 new file mode 100644 index 0000000000..dfbde1419b Binary files /dev/null and b/Games/wordScramble/assets/correct.mp3 differ diff --git a/Games/wordScramble/assets/game-start.mp3 b/Games/wordScramble/assets/game-start.mp3 new file mode 100644 index 0000000000..0c383ec481 Binary files /dev/null and b/Games/wordScramble/assets/game-start.mp3 differ diff --git a/Games/wordScramble/assets/game_over.mp3 b/Games/wordScramble/assets/game_over.mp3 new file mode 100644 index 0000000000..1fd5b586b3 Binary files /dev/null and b/Games/wordScramble/assets/game_over.mp3 differ diff --git a/Games/wordScramble/assets/giphy.gif b/Games/wordScramble/assets/giphy.gif new file mode 100644 index 0000000000..a238eb0569 Binary files /dev/null and b/Games/wordScramble/assets/giphy.gif differ diff --git a/Games/wordScramble/assets/images/background.jpg b/Games/wordScramble/assets/images/background.jpg new file mode 100644 index 0000000000..660bc3a5bf Binary files /dev/null and b/Games/wordScramble/assets/images/background.jpg differ diff --git a/Games/wordScramble/assets/incorrect.mp3 b/Games/wordScramble/assets/incorrect.mp3 new file mode 100644 index 0000000000..893ea78dc1 Binary files /dev/null and b/Games/wordScramble/assets/incorrect.mp3 differ diff --git a/Games/wordScramble/assets/logo.png b/Games/wordScramble/assets/logo.png new file mode 100644 index 0000000000..e1b2a2ad42 Binary files /dev/null and b/Games/wordScramble/assets/logo.png differ diff --git a/Games/wordScramble/assets/timeout.mp3 b/Games/wordScramble/assets/timeout.mp3 new file mode 100644 index 0000000000..f5a8309981 Binary files /dev/null and b/Games/wordScramble/assets/timeout.mp3 differ diff --git a/Games/wordScramble/game.css b/Games/wordScramble/game.css new file mode 100644 index 0000000000..3049cbf96f --- /dev/null +++ b/Games/wordScramble/game.css @@ -0,0 +1,175 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap'); +*{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; + color: white; +} + +body { + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background: url('assets/alphabet-background.jpg') no-repeat center center/cover; + transition: 0.3s ease-in-out; +} + +.container { + width: 90%; + max-width: 450px; + border-radius: 7px; + background: rgb(24, 1, 1); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + animation: fadeIn 0.5s; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + + +.container h2{ + font-size: 25px; + font-weight: 500; + padding: 18px 25px; + border-bottom: 1px solid #ccc; +} + +.container .content { + margin: 25px 20px 30px; +} + +.container .word { + font-size: 33px; + font-weight: 500; + text-align: center; + text-transform: uppercase; + letter-spacing: 24px; + margin-right: -24px; +} + +.container input[type="text"] { + color: black; +} + +.content .details { + margin: 25px 0 20px; + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.container .hint { + background-color: rgba(255, 255, 255, 0.2); /* Set background color with transparency */ + padding: 10px; + border-radius: 5px; +} + +.container .hint span { + color: white; +} + +.details p { + font-size: 18px; + margin-bottom: 10px; + flex-basis: 100%; +} + +.details p.bigger { + flex-basis: auto; /* Allow bigger details to occupy necessary space */ +} + +.details p b { + font-weight: 500; +} + +.content input{ + width: 100%; + height: 60px; + outline: none; + font-size: 18px; + padding: 0 16px; + border-radius: 5px; + border: 1-x solid #aaa; +} + +.content .buttons{ + display: flex; + margin-top: 20px; + justify-content: space-between; + gap: 8px; +} + +.buttons button{ + border: none; + outline: none; + color: #fff; + cursor: pointer; + padding: 15px 0; + font-size: 17px; + border-radius: 5px; + width: calc(100%/ 3 - 10px); +} + +.buttons .refresh-word{ + background: #6c757d; +} + +.buttons .check-word{ + background: #5372F0; +} + +.buttons .hint-btn { + background: #28a745; +} + +.buttons button:hover { + background-color: #4e5a65; +} + +/* Styles for the game over popup */ +.popup { + display: none; /* Initially hidden */ + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.7); + justify-content: center; + align-items: center; + z-index: 1000; +} + +.popup-content { + background: #1c1e22; + padding: 20px; + border-radius: 10px; + text-align: center; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); +} + +.popup-content h2 { + margin-bottom: 20px; +} + +.popup-content p { + margin-bottom: 15px; +} + +.popup-content button { + background: #5372F0; + border: none; + padding: 10px 20px; + color: white; + font-size: 16px; + border-radius: 5px; + cursor: pointer; +} + +.popup-content button:hover { + background: #4358b0; +} \ No newline at end of file diff --git a/Games/wordScramble/game.html b/Games/wordScramble/game.html new file mode 100644 index 0000000000..9620661b3e --- /dev/null +++ b/Games/wordScramble/game.html @@ -0,0 +1,47 @@ + + + + + Word Scramble Game + + + + + + + + +
+

Word Scramble

+
+

+
+

Hint:

+

Time Left: 30s

+

Score: 0

+

Lives: 3

+

Level: 1

+
+ +
+ + + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/Games/wordScramble/index.html b/Games/wordScramble/index.html new file mode 100644 index 0000000000..ead085c102 --- /dev/null +++ b/Games/wordScramble/index.html @@ -0,0 +1,38 @@ + + + + + Welcome to Word Scramble Game + + + +
+
+
+

Welcome to Word Scramble Game

+

Get ready to unscramble words and test your vocabulary!

+
+

Rules:

+
    +
  1. Unscramble the letters to form a valid word.
  2. +
  3. You have a limited number of lives.
  4. +
  5. Each correct word earns you points.
  6. +
  7. Try to achieve the highest score!
  8. +
+
+
+
+ Welcome GIF +
+
+ +
+ + + background +
+ +
+ + + diff --git a/Games/wordScramble/js/script.js b/Games/wordScramble/js/script.js new file mode 100644 index 0000000000..e65ac36f82 --- /dev/null +++ b/Games/wordScramble/js/script.js @@ -0,0 +1,155 @@ +const wordText = document.querySelector(".word"); +hintText = document.querySelector(".hint span"); +timeText = document.querySelector(".time b"); +const scoreText = document.querySelector(".score b"); +const livesText = document.querySelector(".lives b"); +inputField = document.querySelector("input"); +refreshBtn = document.querySelector(".refresh-word"); +checkBtn = document.querySelector(".check-word"); +const hintBtn = document.querySelector(".hint-btn"); +const levelText = document.querySelector(".level b"); + +const gameOverPopup = document.getElementById("gameOverPopup"); +const finalScoreElem = document.getElementById("finalScore"); +const finalLevelElem = document.getElementById("finalLevel"); +const gameOverBtn = document.getElementById("gameOverBtn"); + +let correctWord, timer, score = 0, lives = 3, hintUsed = false, level = 1; +let correctAnswersInLevel = 0; +let timeLeft = 30; + +const correctSound = new Audio('assets/correct.mp3'); +const incorrectSound = new Audio('assets/incorrect.mp3'); +const timeoutSound = new Audio('assets/timeout.mp3'); +const clappingSound = new Audio('assets/game_over.mp3'); + + +const initTimer = maxTime => { + clearInterval(timer); + timer = setInterval(() => { + if(maxTime > 0) { + maxTime--; + return timeText.innerText = maxTime; + } + clearInterval(timer); + timeoutSound.play(); // Play timeout sound + alert(`Time's up!!! ${correctWord.toUpperCase()} was the correct word`); + loselife(); + }, 1000); +} + +const initGame = () => { + if(lives == 0) { + showGameOverPopup(); + return; + } + + if (correctAnswersInLevel == 5) { + level++; + timeLeft -= 10; + levelText.innerText = level; + correctAnswersInLevel = 0; + alert(`Congratulations! You've advanced to level ${level}`); + } + + + initTimer(timeLeft); // time decrease as the level incereases + let randomObj = words[Math.floor(Math.random() * words.length)]; //getting random objects + let wordArray = randomObj.word.split("") //splitting each letter + for (let i = wordArray.length - 1 ; i > 0; i--){ + let j = Math.floor(Math.random() * (i + 1)); //getting random number + // swapping wordArray letters randomly + [wordArray[i], wordArray[j]] = [wordArray[j], wordArray[i]]; + } + wordText.innerText = wordArray.join(""); + hintText.innerText = randomObj.hint; + correctWord = randomObj.word.toLowerCase(); + inputField.value = ""; + inputField.setAttribute("maxlength", correctWord.length); + hintUsed = false; +} + +const checkWord = () => { + let userWord = inputField.value.toLocaleLowerCase(); + if(!userWord) return alert("Please enter a word to check"); // if no input enterd + + // if not matched with the correct word + if(userWord !== correctWord){ + incorrectSound.play(); + alert(`Oops! ${userWord} is not a correct word`); + loselife(); + } + // if matched with the correct word + else{ + correctSound.play(); + alert(`Congrats! ${userWord.toUpperCase()} is a correct word`); + score += 10; + correctAnswersInLevel++; + scoreText.innerText = score; + initGame(); + } +} + +const loselife = () => { + lives--; + livesText.innerText = lives; + if (lives == 0) { + showGameOverPopup(); + } else { + initGame(); + } +} + +const showGameOverPopup = () => { + clappingSound.play(); + finalScoreElem.innerText = score; + finalLevelElem.innerText = level; + gameOverPopup.style.display = 'flex'; +} + +const resetGame = () => { + score = 0; + lives = 3; + level = 1; + correctAnswersInLevel = 0; + timeLeft = 30; + scoreText.innerText = score; + livesText.innerText = lives; + levelText.innerText = level; + initGame(); +} + +const giveHint = () => { + if (hintUsed) { + alert("You can only use the hint once!"); + return; + } + let userWord = inputField.value.toLowerCase(); + for (let i = 0; i < correctWord.length; i++) { + if (userWord[i] !== correctWord[i]) { + inputField.value = userWord.slice(0, i) + correctWord[i] + userWord.slice(i + 1); + hintUsed = true; + break; + } + } +} + +refreshBtn.addEventListener("click", initGame); +checkBtn.addEventListener("click", checkWord); +hintBtn.addEventListener("click", giveHint); + +// Event listener for the game over button +gameOverBtn.addEventListener("click", () => { + // Redirect to the welcome page (index.html) + window.location.href = 'index.html'; +}); + +// Event listener for Enter key press +inputField.addEventListener("keypress", event => { + if (event.key === "Enter") { + checkWord(); + } +}); + + +document.addEventListener("DOMContentLoaded", initGame); \ No newline at end of file diff --git a/Games/wordScramble/js/words.js b/Games/wordScramble/js/words.js new file mode 100644 index 0000000000..4dfa0c2c76 --- /dev/null +++ b/Games/wordScramble/js/words.js @@ -0,0 +1,146 @@ +const words = [ + { + word: "addition", + hint: "The process of adding numbers" + }, + { + word: "meeting", + hint: "Event in which people come together" + }, + { + word: "number", + hint: "Math symbol used for counting" + }, + { + word: "exchange", + hint: "The act of trading" + }, + { + word: "canvas", + hint: "Piece of fabric for oil painting" + }, + { + word: "garden", + hint: "Space for planting flower and plant" + }, + { + word: "position", + hint: "Location of someone or something" + }, + { + word: "feather", + hint: "Hair like outer covering of bird" + }, + { + word: "comfort", + hint: "A pleasant feeling of relaxation" + }, + { + word: "tongue", + hint: "The muscular organ of mouth" + }, + { + word: "expansion", + hint: "The process of increase or grow" + }, + { + word: "country", + hint: "A politically identified region" + }, + { + word: "group", + hint: "A number of objects or persons" + }, + { + word: "taste", + hint: "Ability of tongue to detect flavour" + }, + { + word: "store", + hint: "Large shop where goods are traded" + }, + { + word: "field", + hint: "Area of land for farming activities" + }, + { + word: "friend", + hint: "Person other than a family member" + }, + { + word: "pocket", + hint: "A bag for carrying small items" + }, + { + word: "needle", + hint: "A thin and sharp metal pin" + }, + { + word: "expert", + hint: "Person with extensive knowledge" + }, + { + word: "statement", + hint: "A declaration of something" + }, + { + word: "second", + hint: "One-sixtieth of a minute" + }, + { + word: "library", + hint: "Place containing collection of books" + }, + { + word: "Variable", + hint: "A named storage location in a program" + }, + { + word: "Function", + hint: "A block of organized, reusable code that performs a specific task" + }, + { + word: "Array", + hint: "A data structure that stores a collection of elements" + }, + { + word: "Boolean", + hint: "A data type that represents one of two values, typically 'true' or 'false'" + }, + { + word: "String", + hint: "A sequence of characters" + }, + { + word: "Integer", + hint: "A whole number, without a fractional part" + }, + { + word: "Class", + hint: "A blueprint for creating objects, providing initial values for state and implementations of behavior" + }, + { + word: "Gravity", + hint: "The force that attracts objects toward each other" + }, + { + word: "Revolution", + hint: "A sudden, complete, or marked change in something" + }, + { + word: "Ecosystem", + hint: "A biological community of interacting organisms and their physical environment" + }, + { + word: "Innovation", + hint: "The introduction of something new or a new idea, method, or device" + }, + { + word: "Runway", + hint: "A narrow, usually elevated platform used by models to demonstrate clothing and accessories during a fashion show" + }, + { + word: "Trend", + hint: "A general direction in which something is developing or changing, often in fashion" + }, +] \ No newline at end of file diff --git a/Games/wordScramble/script.js b/Games/wordScramble/script.js new file mode 100644 index 0000000000..d4f3cb79ec --- /dev/null +++ b/Games/wordScramble/script.js @@ -0,0 +1,5 @@ +document.getElementById('play-now-button').addEventListener('click', function() { + const gameStartSound = new Audio('assets/start-game.mp3'); + gameStartSound.play(); + window.location.href = 'game.html'; +}); diff --git a/Games/wordScramble/styles.css b/Games/wordScramble/styles.css new file mode 100644 index 0000000000..7dd5dc27cd --- /dev/null +++ b/Games/wordScramble/styles.css @@ -0,0 +1,132 @@ +body { + margin: 0; + padding: 0; + background-image: url('assets/background.jpg'); + overflow: hidden; +} + +.container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; + max-width: 600px; + padding: 20px; + text-align: center; + background-color: rgba(255, 255, 255, 0.8); + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + z-index: 1; +} + + +.welcome-content { + display: flex; + justify-content: space-between; + height: 100%; +} + +.welcome-text { + width: calc(50% - 10px); + white-space: nowrap; + text-overflow: ellipsis; +} + +.welcome-gif-container { + position: absolute; + top: 65%; + right: 20px; + transform: translateY(-50%); + width: 200px; + background-color: transparent; +} + +.welcome-gif { + width: 100%; + height: auto; + border-radius: 10px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +h1 { + color: #333; + font-size: 36px; + padding-left: 40px; +} + +.welcome-note { + margin-bottom: 20px; +} + +.rules-list { + text-align: left; + margin-bottom: 20px; +} + +.rules-list li { + margin-bottom: 10px; + font-size: 20px; +} + +#play-now-button { + padding: 10px 20px; + font-size: 20px; + background-color: #4CAF50; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s; +} + +#play-now-button:hover { + background-color: #45a049; +} + + +.logo-container { + position: fixed; + top: 20px; + left: 20px; + width: 100px; + height: 100px; + border-radius: 50%; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +.logo { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; +} + +.welcome-text h1{ + padding-left: 40px; +} + +.welcome-content p{ + padding-left: 80px; + font-size: 20px; +} + +h2{ + text-align: left; + padding-left: 20px; + font-size: 20px; +} + +.background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -1; +} \ No newline at end of file diff --git a/README.md b/README.md index eef926a233..c12207705e 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,7 @@ This repository also provides one such platforms where contributers come over an | [Dragon_Tower](https://github.com/kunjgit/GameZone/tree/main/Games/Dragon_Tower) | | [Guess_num](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_num) | | [QuickFingers](https://github.com/kunjgit/GameZone/tree/main/Games/QuickFingers) | +| [Physics_Quizz](https://github.com/kunjgit/GameZone/tree/main/Games/Physics_Quizz) | | [Tiny_Fishing](https://github.com/kunjgit/GameZone/tree/main/Games/Tiny_Fishing) | | [Hover_Board_Effect](https://github.com/kunjgit/GameZone/tree/main/Games/Hover_Board_Effect) | @@ -307,6 +308,9 @@ This repository also provides one such platforms where contributers come over an | [Guess_The_Song](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Song) | [Reverse Memory](https://github.com/MuraliDharan7/GameZone/tree/reverse-memory-game/Games/Reverse%20Memory) | [NewsJunction](https://github.com/kunjgit/GameZone/tree/main/Games/NewsJunction) | | [Recognizing_Figures](https://github.com/kunjgit/GameZone/tree/main/Games/Recognizing_Figures) | + +| [WordScramble](https://github.com/kunjgit/GameZone/tree/main/Games/wordScramble) + [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) | | [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) | @@ -325,13 +329,15 @@ This repository also provides one such platforms where contributers come over an |[AquaSort_Game](https://github.com/kunjgit/GameZone/tree/main/Games/AquaSort_Game) | |[Turn_on_the_light](https://github.com/kunjgit/GameZone/tree/main/Games/Turn_on_the_light) | | [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) - +| [Rapid_click_frenzy](https://github.com/kunjgit/GameZone/tree/main/Games/Rapid_click_frenzy) | +|[Dsa_quiz_game](https://github.com/kunjgit/GameZone/tree/main/Games/Dsa_quiz_game) | +| [Rapid_click_frenzy](https://github.com/kunjgit/GameZone/tree/main/Games/Rapid_click_frenzy) | +| [Gravity_Simulation_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Gravity_Simulation_Game) | | [Anagarm-Word-Game](https://github.com/kunjgit/GameZone/tree/main/Games/Anagarm-Word-Game) | - | [Brick Buster Game](https://github.com/kunjgit/GameZone/tree/main/Games/Brick Buster) | | [Rapid_click_frenzy](https://github.com/kunjgit/GameZone/tree/main/Games/Rapid_click_frenzy) |[Penguins Can't Fly](https://github.com/Will2Jacks/GameZoneForked/tree/Task/Games/Penguins_Can't_Fly)| +| [Taash_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Taash_Game)| |[Harmony_Mixer](https://github.com/kunjgit/GameZone/tree/main/Games/Harmony_Mixer)| diff --git a/assets/images/Dsa_quiz1.png b/assets/images/Dsa_quiz1.png new file mode 100644 index 0000000000..22453aa476 Binary files /dev/null and b/assets/images/Dsa_quiz1.png differ diff --git a/assets/images/Dsa_quiz2.png b/assets/images/Dsa_quiz2.png new file mode 100644 index 0000000000..a129e1fe7f Binary files /dev/null and b/assets/images/Dsa_quiz2.png differ diff --git a/assets/images/Gravity_Simulation_Game.png b/assets/images/Gravity_Simulation_Game.png new file mode 100644 index 0000000000..7f6d73d53f Binary files /dev/null and b/assets/images/Gravity_Simulation_Game.png differ diff --git a/assets/images/Gravity_Simulation_Game.webp b/assets/images/Gravity_Simulation_Game.webp new file mode 100644 index 0000000000..b08dadec49 Binary files /dev/null and b/assets/images/Gravity_Simulation_Game.webp differ diff --git a/assets/images/Physics_Quizz.png b/assets/images/Physics_Quizz.png new file mode 100644 index 0000000000..2c69f2e39b Binary files /dev/null and b/assets/images/Physics_Quizz.png differ diff --git a/assets/images/Taash Game.png b/assets/images/Taash Game.png new file mode 100644 index 0000000000..4376fcc0c3 Binary files /dev/null and b/assets/images/Taash Game.png differ diff --git a/assets/images/WordScramble.png b/assets/images/WordScramble.png new file mode 100644 index 0000000000..e1b2a2ad42 Binary files /dev/null and b/assets/images/WordScramble.png differ diff --git a/assets/images/Word_Scramble.png b/assets/images/Word_Scramble.png new file mode 100644 index 0000000000..a03fb8e96e Binary files /dev/null and b/assets/images/Word_Scramble.png differ